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