In C++11 implicit generation of the copy constructor is deprecated if the class has a user-declared copy assignment operator or a user-declared destructor.