C++ concepts: MoveAssignable (since C++11)
Specifies that an instance of the type can be assigned from an rvalue argument.
The following expressions must be valid and have their specified effects
|Expression||Return type||Return value||Post-conditions|
|t = rv||
|| The value of
The new value of
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.
 See also
| checks if a type has a move assignment operator