У меня есть класс, который я не собираюсь копировать / перемещать, и хочу убедиться, что я случайно этого не сделаю.
class Foo {
public:
Foo(const Foo&) = delete;
// Are these 3 needed?
Foo(Foo&) = delete;
Foo& operator=(const Foo&) = delete;
Foo& operator=(Foo&&) = delete;
}
Есть ли цель также удалить конструктор перемещения и/ или операторы присваивания перемещения / копирования, или удаление конструктора копирования автоматически указывает компилятору не генерировать их?