http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52094
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-02 10:25:54 UTC --- If the nested class is declared in an enclosing namespace scope (as required) but still with the nested-name-qualifier of the derived type, G++ accepts it: namespace N { struct A { struct Inner; }; } namespace NN { struct AA : N::A {}; } struct NN::AA::Inner {}; Clang++ and Comeau both reject this.