Before C++11, I could use this to make a class non-copyable:
private:
MyClass(const MyClass&);
MyClass& operator=(const MyClass&);
Move constructor/assignment are not generated when you declare a copy constructor.
So
MyClass(MyClass&&) = delete;
MyClass& operator=(MyClass&&) = delete;
are not required.
You can still add it to be more explicit.
As others already mentioned in the comments, deleted constructors was introduced in C++11. To answer your question, the following rules hold in general:
As requested in the comments, here are some sources (C++11 is draft N3242):