typedef int type1; using using1 = float; typedef using1 type2; using using2 = type1; template struct S { using X = T*; }; using Y = S::X;