// { dg-do run } | |
template <class T> struct A { | |
template <class U> struct B { | |
template <class V> static void f () { } | |
void g () { } | |
}; | |
}; | |
template <class T, class U> | |
void f () | |
{ | |
A<T>::template B<U>::template f<T> (); | |
typename A<T>::template B<U> b; | |
typename A<T>::template B<U> b2; | |
b.A<T>::template B<U>::~B(); | |
} | |
template <class T> struct C: public A<T>::template B<T> { }; | |
int main () | |
{ | |
f<int, char>(); | |
} |