A common thing I find myself doing is making "almost default" copy constructors and assignment operators. That is, I find myself in situations where the compiler supplied copy and assignment operators would work for most of the data members, but there's a particular data member which needs to be handled differently. This means that I have to explicitly create a copy constructor/assignment operator, including explicitly listing all the data members which have simple copy semantics. This can get annoying for classes where there are a fair number of data members, or later on when member variables are added but aren't added to the copy constructor/assignment operator.
Is there some way to tell the C++ compiler that an explicitly declared copy constructor/assignment operator should work like an implicit one, except for some additional code that's run afterwards? (And is such a syntax C++98 compatible, or does it need C++11 or C++14 support?)