C++ named requirements: MoveConstructible (since C++11)

Specifies that an instance of the type can be constructed from an rvalue argument.

# Notes

A class does not have to implement a move constructor to satisfy this type requirement: a copy constructor that takes a const T& argument can bind rvalue expressions.

If a MoveConstructible class implements a move constructor, it may also implement move semantics to take advantage of the fact that the value of rv after construction is unspecified.

Being a MoveConstructible class implies std::is_move_constructible but not vice versa since std::is_move_constructible will only check for the ability to call the constructor with the correct arguments, not a post-condition value.

Output:

# See also