https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105652
--- Comment #2 from 康桓瑋 <hewillk at gmail dot com> --- More reduced. template<class> concept C = [] { return true; } (); template<class T> // <-- ok if not 'T' struct S {}; template<class T> requires C<T> struct S<T> { constexpr static bool value = true; }; static_assert(S<int>::value); https://godbolt.org/z/7WK8TTaMs