C++ named requirements: *MoveAssignable * (since C++11)
Specifies that an instance of the type can be assigned from an rvalue argument.
Requirements
The type T satisfies *MoveAssignable * if
Given
t
, a modifiable lvalue expression of type Trv
, an rvalue expression of T
The following expressions must be valid and have their specified effects
Expression | Return type | Return value | Post-conditions |
---|---|---|---|
t = rv | T& | t | If t and rv do not refer to the same object , the value of t is equivalent to the value of rv before the assignment. The new value of rv is unspecified |
Notes
The type does not have to implement move assignment operator in order to satisfy this type requirement:
a copy assignment operator that takes its parameter by value or as a const Type&
, will bind to rvalue argument.
If a MoveAssignable class implements a move assignment operator,
it may also implement move semantics to take advantage of the fact that the value of rv
after assignment is unspecified.