template struct A { struct B { typedef int intermediate_type; typedef intermediate_type type; }; }; typedef A::B::type start;