Namespaces
Variants

C++ named requirements: MoveAssignable (since C++11)

From cppreference.net
C++ named requirements

その型のインスタンスが rvalue 引数から代入可能であることを指定します。

要件

T は、以下の条件を満たす場合 MoveAssignable を満たします

与えられた

以下の式は有効であり、指定された効果を持たなければなりません。

戻り値の型 戻り値 事後条件
t = rv T& t t rv が同じオブジェクトを参照していない場合、 t の値は代入前の rv の値と等価となる。

rv の新しい値は未規定である。

注記

この型要件を満たすために型が move assignment operator を実装する必要はありません:値渡しまたは const Type& でパラメータを受け取る copy assignment operator は、右辺値引数にバインドします。

MoveAssignable クラスがムーブ代入演算子を実装する場合、 move semantics を実装することで、代入後の rv の値が未規定であるという事実を活用することができる。

関連項目

型がムーブ代入演算子を持つかどうかをチェックする
(クラステンプレート)
型が他の型から代入可能であることを指定する
(コンセプト)