http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55837
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2013-01-01 02:48:27 UTC --- This warning also complains if you don't have a mem-initializer for a type such as std::string, which has a perfectly safe default constructor i.e. the warning is just broken by design. What's really needed is to replace the current "there is no explicit initializer for some member" with a warning about members that are left uninitialized, so we don't warn about members with a non-static data member initializer or with a default constructor. I was working on exactly that, but never got it working correctly in all cases. I plan to return to that patch soonish.