A centralized way to disable the default constructor is to make the default constructor unavailable.
You write: "I would like to know if there is a solution preventing the programmer from writing code that (implicitly or not) uses the default copy constructor if the object is not a POD."
Presumably, you mean that the compiler should respond to any default construct of any object other than POD.
Sorry, does not depend on the compiler.
: -POD-, , std::vector, , .
g++ -Weffc++, Scott Meyers & rsquo; ++, , , ndash; . . , -, .
hth.,