http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55120
--- Comment #1 from Nick Krempel <ndkrempel at gmail dot com> 2012-10-29 16:08:49 UTC --- Not so clear this is a bug, as the default constructor for D could be generated in the following form: struct D : B { D() : B(), ::V() {} } Note the reference to V via the global scope, which is essential for it to compile.