なして?
template<typename T>
struct A{ struct B{struct C{};};
typedef A<int> tA;
typedef B::C BC;
typedef typename tA::B; // does not type a name error
};