As others already mentioned in the comments, deleted constructors was introduced in C++11. To answer your question, the following rules hold in general:
- The two copy operations are independent. Declaring copy constructor does not prevent compiler to generate copy assignment and vice versa. (Same as in C++98)
- Move operations are not independent. Declaring either one of them prevents the compiler to generate the other. (Different from copy operations.)
- If any of the copy operations is declared, then none of the move operation will be generated. (Your case.)
- If any of the move operation is declared, then none of the copy operation will be generated. This is the opposite rule of the previous.
- If a destructor is declared, then none of the move operation will be generated. Copy operations are still generated for reverse compatibility with C++98.
- Default constructor generated only when no constructor is declared. (Same as in C++98)
As requested in the comments, here are some sources (C++11 is draft N3242):
- Copy operations: § 12.8.8, § 12.8.19
- Move operations: § 12.8.10, § 12.8.21
- Default constructor: § 12.1.5