1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/* PR c++/53 */ /* { dg-do compile } */ template <class T> struct A { template <class U> class B; // Did not compile with gcc-2.95.2 (linux i686) :-( template <class S> template <class U> friend class A<S>::B; }; template <class S> template <class U> class A<S>::B { }; int main(){ A<double>::B<double> ab; return 0; }