As per the C++ standard 12.8.7:
If the class definition declares a move constructor or move assignment operator, the implicitly declared copy constructor is defined as deleted;
and 12.8.18
If the class definition declares a move constructor or move assignment operator, the implicitly declared copy assignment operator is defined as deleted;
I am wondering why the move constructor/move assignment are not implicitly declared and defined as deleted (c++11 standard will not generate implicitly declared move constructor/move assignment in this case), if we only defined copy constructor or copy assignment operator?