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