https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107428
Bug ID: 107428 Summary: trying to define a partial specialized concept does not give a good error message Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Take: ``` template<typename T, typename T1> concept same = false; template<typename T> concept same<T, T> = true; ``` GCC produces: ``` <source>:6:13: error: expected '=' before '<' token 6 | concept same<T, T> = true; | ^ ``` While clang produces: ``` <source>:6:9: error: name defined in concept definition must be an identifier concept same<T, T> = true; ^ ``` While clang is definitely better than GCC. We could do even better at sugguesting you can't do a partial specialization of a concept.