template struct X; using Z = X; template <> struct X { using type = int; }; int main() { Z::type x = 1; }