MoveAssignable
t, a modifiable lvalue expression (http://en.cppreference.com/w/cpp/language/value_category)of type T
rv, an rvalue (http://en.cppreference.com/w/cpp/language/value_category)expression of type T
CopyAssignable
t, a modifiable lvalue expression (http://en.cppreference.com/w/cpp/language/value_category)of type T
v, an lvalue (http://en.cppreference.com/w/cpp/language/value_category)expression of type T or const T or an rvalue (http://en.cppreference.com/w/cpp/language/value_category)expression of type const T
MoveConstructible
Specifies that an instance of the type can be constructed from an rvalue (http://en.cppreference.com/w/cpp/language/value_category)argument.
rv, an rvalue (http://en.cppreference.com/w/cpp/language/value_category)expression of type T
u, an arbitrary identifier
CopyConstructible
Specifies that an instance of the type can be copy-constructed from an lvalue expression.(http://en.cppreference.com/w/cpp/language/value_category)
T u = v;T(v)