I have a class that I do not intend to copy/move around and want to make sure I don't accidentally do that.
class Foo {
public:
Foo(const Foo&) = delete;
// Are these 3 needed?
Foo(Foo&) = delete;
Foo& operator=(const Foo&) = delete;
Foo& operator=(Foo&&) = delete;
}
Is there any purpose of also deleting the move constructor and/or the move/copy assignment operators, or does deleting the copy constructor automatically tells the compiler to not generate them?