Defined in header
movable<T> specifies that
T is an object type that can moved (that is, it can be move constructed, move assigned, and lvalues of type
T can be swapped).
 See also
| specifies that an object of a type can be copied, moved, and swapped |