C++ named requirements: MoveAssignable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
その型のインスタンスが rvalue 引数から代入可能であることを指定します。
要件
型
T
は、以下の条件を満たす場合
MoveAssignable
を満たします
与えられた
以下の式は有効であり、指定された効果を持たなければなりません。
| 式 | 戻り値の型 | 戻り値 | 事後条件 |
|---|---|---|---|
| t = rv |
T&
|
t
|
t
と
rv
が同じオブジェクトを参照していない場合、
t
の値は代入前の
rv
の値と等価となる。
|
注記
この型要件を満たすために型が
move assignment operator
を実装する必要はありません:値渡しまたは
const Type&
でパラメータを受け取る
copy assignment operator
は、右辺値引数にバインドします。
MoveAssignable
クラスがムーブ代入演算子を実装する場合、
move semantics
を実装することで、代入後の
rv
の値が未規定であるという事実を活用することができる。
関連項目
|
(C++11)
(C++11)
(C++11)
|
型がムーブ代入演算子を持つかどうかをチェックする
(クラステンプレート) |
|
(C++20)
|
型が他の型から代入可能であることを指定する
(コンセプト) |