https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98617
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Please provide the actual code, not only a CE link: template <typename T, typename V> struct Base {}; template <typename T, typename V> using A = Base<T, V>; template <typename T> using B = Base<T, int>; template <typename T, typename V, typename> using C = Base<T, V>; template<typename...T> using AliasA = A<T...>; // this should fail template<typename...T> using AliasB = B<T...>; template<typename...T> using AliasC = C<T...>; Reduced to remove the bits that do fail as expected: template <typename T, typename V> struct Base {}; template <typename T, typename V> using A = Base<T, V>; template<typename...T> using AliasA = A<T...>; // this should fail