A move constructor of class T is a non-template constructor whose first parameter is T&&, const T&&, volatile T&&, or const volatile T&&, and either there are no other parameters, or the rest of the parameters all have default values.
Syntax
class_name ( class_name && ) (1) (since C++11) class_name ( class_name && ) = default; (2) (since C++11) class_name ( class_name && ) = delete; (3) (since C++11)
Explanation