1 template <typename T> struct A {
2     template<typename S> struct B { typedef A<S> X; };
3 
4 };
5 
f()6 template<typename> void f() {
7     typedef A<int>::B<double>::X X;
8 }
9 
10 template void f<int> ();
11