因此,在观看了关于右值引用的精彩演讲之后,我认为每个类都会受益于这样的"移动构造函数",template<class T> MyClass(T&& other) 编辑,当然还有"移动赋值运算符",template<class T> MyClass& operator=(T&& other)正如Philipp在他的回答中指出的,如果它已经动态分配成员,或通常存储指针.就像你应该有一个copy-ctor,赋值运算符和析构函数,如果之前提到的点适用.思考?
在C++ 98中,C++编译器可以通过成员方式复制自动生成复制构造函数和复制赋值运算符,例如
struct X {
std::string s;
std::vector<int> v;
int n;
};
Run Code Online (Sandbox Code Playgroud)
编译器使用成员方式复制自动生成复制构造函数和复制赋值运算符X.
但是,C++ 11中的移动语义如何改变?
是否自动生成移动 构造函数和移动 赋值运算符 ,如复制构造函数和复制赋值运算符?
是否存在不自动生成移动操作的情况?