https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111485
Bug ID: 111485 Summary: Constraint mismatch on template template parameter Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: barry.revzin at gmail dot com Target Milestone: --- Reduced from StackOverflow (https://stackoverflow.com/q/77136297/2069064): template <typename T> constexpr bool regular = true; template <typename T> concept C = regular<T>; template<template<C> typename T> struct example { }; template<template<C> typename T> using example_t = example<T>; gcc 13.2 rejects with: <source>:6:61: error: constraint mismatch at argument 1 in template parameter list for 'template<template<class> class requires C< <template-parameter-2-1> > T> struct example' 6 | template<template<C> typename T> using example_t = example<T>; | ^ <source>:6:61: note: expected 'template<class> class requires C< <template-parameter-2-1> > T' but got 'template<class> class requires C< <template-parameter-2-1> > T' But this should be fine. Clang and MSVC accept. "