https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102041
Bug ID: 102041 Summary: Pretty printing of variable templates could be improved Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- This incorrect code: template<typename T> concept foo = true; template<typename T> requires foo<T> constexpr bool variable = true; static_assert( variable<int>::value ); Gives this error: c.C:7:16: error: variable template-id 'variable<int>' in nested-name-specifier 7 | static_assert( variable<int>::value ); | ^~~~~~~~~~~~~ c.C:5:16: note: 'template<class T> requires foo<T> constexpr const bool variable<T>' declared here 5 | constexpr bool variable = true; | ^~~~~~~~ Showing the "requires foo<t>" part in the note probably isn't very useful (and why is there a double space?) And printing "variable<T>" just seems wrong, it's not a specialization.