Theo C++ chuẩn 11 một constructor di chuyển mặc định là chỉ tạo ra nếu:Rõ ràng mặc định constructor di chuyển
- X không có một người dùng tuyên bố constructor sao chép, và
- X không có sử dụng tuyên bố tử gán sao chép,
- X không có một toán tử gán di chuyển do người dùng khai báo,
- X không có một destructor do người dùng khai báo, và
- các nhà xây dựng di chuyển sẽ không được định nghĩa ngầm đã xóa.
Tôi vẫn có thể mặc định rõ ràng không? Dường như hoạt động chính xác trong tiếng kêu vang. Như thế này ví dụ:
class MyClass {
private:
std::vector<int> ints;
public:
MyClass(MyClass const& other) : ints(other.ints) {}
MyClass(MyClass&& other) = default;
};