我有一个课程,我不打算复制/移动,并希望确保我不会意外地这样做。
class Foo {
public:
Foo(const Foo&) = delete;
// Are these 3 needed?
Foo(Foo&) = delete;
Foo& operator=(const Foo&) = delete;
Foo& operator=(Foo&&) = delete;
}
是否还有删除移动构造函数和/或移动/复制赋值运算符的目的,还是删除复制构造函数会自动告诉编译器不生成它们?