std::basic_istream<CharT,Traits>:: operator=
From ru.cppreference.net
<
cpp
|
io
|
basic istream
|
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 }