std::basic_istream<CharT,Traits>::operator=
protected: basic_istream& operator=( const basic_istream& rhs ) = delete; | (1) | |
protected: basic_istream& operator=( basic_istream&& rhs ); | (2) | (since C++11) |
1) Оператор копирующего присваивания защищён и удалён. Потоки ввода не поддерживают копирование.
2) Оператор перемещающего присваивания обменивает значения
gcount() и все члены данных базового класса, за исключением rdbuf(), со значением rhs, как если бы вызывался swap(*rhs). Этот оператор перемещающего присваивания защищён: он вызывается только операторами перемещающего присваивания производных классов потоков ввода, способных к перемещению std::basic_ifstream и std::basic_istringstream, которые знают, как корректно выполнить перемещающее присваивание связанным буферам потока.Параметры
| rhs | - | объект basic_istream, значения которого нужно присвоить *this |
Пример
#include <iostream>
#include <sstream>
int main()
{
std::istringstream s1;
s1 = std::istringstream("test"); // OK
// std::cin = std::istringstream("test"); // ERROR: 'operator=' is protected
}
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_istream/operator%3D