std::basic_istream<CharT,Traits>::operator=
protected: basic_istream& operator=( const basic_istream& rhs ) = delete; | (1) | |
protected: basic_istream& operator=( basic_istream&& rhs ); | (2) | (начиная с C++11) |
1) Оператор копирующего присваивания является защищённым и удалён. Потоки ввода не удовлетворяют требованиям CopyAssignable.
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/cpp/io/basic_istream/operator%3D