1// { dg-do run } 2template <class T> struct A { 3 template <class U> struct B { 4 template <class V> static void f () { } 5 void g () { } 6 }; 7}; 8 9template <class T, class U> 10void f () 11{ 12 A<T>::template B<U>::template f<T> (); 13 typename A<T>::template B<U> b; 14 typename A<T>::template B<U> b2; 15 b.A<T>::template B<U>::~B(); 16} 17 18template <class T> struct C: public A<T>::template B<T> { }; 19 20int main () 21{ 22 f<int, char>(); 23} 24