std::basic_istream<CharT,Traits>:: operator=
From ja.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)
コピー代入演算子は protected で、削除されています。入力ストリームは CopyAssignable ではありません。
2)
ムーブ代入演算子は、
gcount()
の値と基底クラスのすべてのデータメンバ(
rdbuf()
を除く)を
rhs
と交換する。これは
swap
(
*
rhs
)
を呼び出すかのように動作する。このムーブ代入演算子はprotectedである:これは派生したムーブ可能な入力ストリームクラスである
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 }