根據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;
};