C++ named requirements:MoveConstructible
Specifies that an instance of the type can be constructed from an rvalue argument.
Specifies that an instance of the type can be constructed from an rvalue argument.
Specifies that an instance of the type can be constructed from an rvalue argument.