std::basic_istream::basic_istream
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<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.
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.
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.
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:
hello world