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