std::basic_ostream<CharT,Traits>::operator=
提供: cppreference.com
<tbody>
</tbody>
protected: basic_ostream& operator=( const basic_ostream& rhs ) = delete; |
(1) | |
protected: basic_ostream& operator=( basic_ostream&& rhs ); |
(2) | (C++11以上) |
1) コピー代入演算子は protected であり、削除されています。 出力ストリームはコピー代入可能ではありません。
2) ムーブ代入演算子は、 swap(*rhs) を呼んだかのように、 rdbuf() を除いた基底クラスのすべてのデータメンバを rhs と交換します。 このムーブ代入演算子は protected です。 紐付けられているストリームバッファを正しくムーブ代入する方法を知っているムーブ可能な派生出力ストリームクラス std::basic_ofstream および std::basic_ostringstream によってのみ呼ばれます。
引数
| rhs | - | *this に代入する basic_ostream オブジェクト
|
例
Run this code
#include <sstream>
#include <utility>
#include <iostream>
int main()
{
std::ostringstream s;
// std::cout = s; // ERROR: copy assignment operator is deleted
// std::cout = std::move(s); // ERROR: move assignment operator is protected
s = std::move(std::ostringstream() << 42); // OK, moved through derived
std::cout << s.str() << '\n';
}
出力:
42