◐ Shell
clean mode source ↗

std::basic_istream::basic_istream - cppreference.com

De cppreference.com

<metanoindex/>

<tbody> </tbody>

explicit basic_istream( std::basic_streambuf<CharT,Traits>* sb);

(1)

protected: basic_istream( const basic_istream& rhs ) = delete;

(2)

protected: basic_istream( basic_istream&& rhs );

(3) (desde C++11)

1)

Constrói o objeto basic_istream, atribuindo valores iniciais para a classe base chamando basic_ios::init(sb). O valor da gcount() é inicializado a zero.

Original:

Constructs the basic_istream object, assigning initial values to the base class by calling basic_ios::init(sb). The value of gcount() is initialized to zero.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

2)

O construtor de cópia é protegida, e é excluído. Fluxos de entrada não são copiáveis ​​.

Original:

The copy constructor is protected, and is deleted. Input streams are not copyable.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

3)

O construtor movimento copia o valor de gcount() de rhs, define o gcount () o valor de rhs a zero, e usa basic_ios<charT, traits>::move(rhs) para mover todos os membros basic_ios, exceto para o rdbuf(), de rhs em *this. Esse construtor movimento é protegido: ele é chamado pelos construtores movimento de classes de fluxo de entrada móveis std::basic_ifstream e std::basic_istringstream, que sabe como mover corretamente o streambuffer associado.

Original:

The move constructor copies the value of gcount() from rhs, sets the gcount() value of rhs to zero, and uses basic_ios<charT, traits>::move(rhs) to move all basic_ios members, except for the rdbuf(), from rhs into *this. This move constructor is protected: it is called by the move constructors of movable input stream classes std::basic_ifstream and std::basic_istringstream, which know how to correctly move the associated streambuffer.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Parâmetros

sb -

streambuffer para usar como dispositivo subjacente

Original:

streambuffer to use as underlying device

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Exemplo

#include <sstream>
#include <iostream>
int main()
{
    std::istringstream s1("hello");
    std::istream s2(s1.rdbuf());                        // OK: s2 shares the buffer with s1

//    std::istream s3(std::istringstream("test"));      // ERROR: move constructor is protected
//    std::istream s4(s2);                              // ERROR: copy constructor is deleted
    std::istringstream s5(std::istringstream("world")); // OK: move ctor called by derived class

    std::cout << s2.rdbuf() << ' ' << s5.rdbuf() << '\n';
}

Saída: