template struct type_list {}; template struct A { template struct B { template struct C { using type = type_list; }; }; }; template struct test { using result = typename A::template B::template C::type; using expect = type_list; };