std::basic_istream::basic_istream
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<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) | (начиная с C++11) |
1)
Создает
basic_istream объектов, присвоение начальных значений базового класса, вызвав basic_ios::init(sb). Значение gcount() инициализируется нулем.Оригинал:
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.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
2)
Конструктор копирования защищен, и удален. Входные потоки не копируемым.
Оригинал:
The copy constructor is protected, and is deleted. Input streams are not copyable.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3)
Этот шаг конструктор копирует значение
gcount() от rhs, устанавливает gcount () значение правой части нулю, и использует basic_ios<charT, traits>::move(rhs), чтобы переместить все basic_ios членов, за исключением rdbuf(), от rhs в *this. Этот шаг конструктор защищена: она называется по ходу конструкторов подвижных классов входного потока std::basic_ifstream и std::basic_istringstream, которые знают, как правильно двигаться связанных streambuffer.Оригинал:
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.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Параметры
| sb | — | streambuffer для использования в качестве основного устройства
Оригинал: streambuffer to use as underlying device Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Пример
Запустить этот код
#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';
}
Вывод:
hello world