template struct A { template struct B { typedef A X; }; }; template void f() { typedef A::B::X X; } template void f ();