C++11 adds the ability for telling the compiler to create a default implementation of any of the special member functions. While I can see the value of deleting a function,
As well as changing the accessibility (private/protected) of generated functions, you will be able to make them virtual.
struct S
{
virtual ~S();
virtual S& operator=(const S&);
};
S::~S() = default;
S& S::operator=(const S&) = default;
The following aspects of defaulted functions can be modified:
but to do so, the functions must be defined outside the class (8.4.2/2 in the C++0x Final Committee Draft).
A version of the original proposal by Lawrence Crowl is here.
Thanks to Roger Pate for the clarification and citation.