C++ concepts: MoveConstructible (since C++11)
From cppreference.com
Specifies that an instance of the type can be constructed from an rvalue argument.
[edit] Requirements
The type T satisfies MoveConstructible if
Given
-
rv, an rvalue expression of typeT -
u, an arbitrary identifier
The following expressions must be valid and have their specified effects
| Expression | Post-conditions |
|---|---|
| T u = rv; | The value of u is equivalent to the value of rv before the initialization.
The new value of |
| T(rv) | The value of T(rv) is equivalent to the value of rv before the initialization.
The new value of |
[edit] 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.
[edit] See also
| (C++11)(C++11)(C++11) |
checks if a type has a move constructor (class template) |