RFC-209 requires that all classes make use of explicit copy-constructors and assignment operators, as enabled by C++11. We have a large body of legacy code, particularly in afw, that does not follow this guideline.
All afw classes should be given explicit (often default) default constructors, copy-constructors, and assignment operators, and equivalent C++98 tricks like private undefined constructors should be removed. Per Effective Modern C++, private undefined constructors shall be replaced with public deleted constructors.
For consistency's sake, the default statement shall be included in the header file if most existing constructors are inline and in the implementation file otherwise. delete shall always be given in the header, since the unavailability of a method is part of the API.