C++ named requirements:MoveInsertable
Specifies that an object of the type can be constructed into uninitialized storage from an rvalue of that type by a given allocator.
Specifies that an object of the type can be constructed into uninitialized storage from an rvalue of that type by a given allocator.
Specifies that an object of the type can be constructed into uninitialized storage from an rvalue of that type by a given allocator.