template <typename T1, typename T2> struct A { typedef T1 MyT1; using MyT2 = T2; }; using B = A<int, char>; template <typename T> using C = A<int, T>;