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 typeT
-  rv, an rvalue expression of typeT
The following expressions must be valid and have their specified effects.
| Expression | Return type | Return value | Post-conditions | 
|---|---|---|---|
| t = rv | T& | t | If tandrvdo not refer to the same object , the value oftis equivalent to the value ofrvbefore the assignment.The new value of  | 
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.
See also
| (C++11)(C++11)(C++11) | checks if a type has a move assignment operator (class template) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/named_req/MoveAssignable