根据C++的11个标准默认移动构造函数时,才会生成,如果:明确违约移动构造函数
- X没有一个用户声明的拷贝构造函数,
- X没有一个用户声明的拷贝赋值运算符,
- X没有一个用户声明的举动赋值运算符,
- X没有一个用户声明的析构函数,并
- 此举构造不会被隐式定义已删除。
我还可以明确地默认它吗?似乎在叮当中正常工作。像这样的例子:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};