http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58590
--- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> --- Or, I don't know, simple C++98 which we should also reject: //------------------ struct S { int member; struct member{}; }; template<class T, class = typename T::member> struct C { }; template class C<S>; //------------------