https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88175
--- Comment #19 from Jonathan Wakely <redi at gcc dot gnu.org> --- Why is that needed? It says the location is something like: In member function ‘info& info::operator=(const info&)’, or: In copy constructor ‘info::info(const info&)’, If that isn't explicitly defined in the class, then obviously it's being defined implicitly by the compiler. That property of C++ should not surprise anybody.