https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111041
Bug ID: 111041 Summary: Malformed requires syntax should produce better diagnostics Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: s_gccbugzilla at nedprod dot com Target Milestone: --- I know this will be a minor enhancement request, however I would like this to produce more useful diagnostics: template<class T> concept test1 = requires(T x) { x.foo() -> bool;}; Currently we get "error: expected unqualified-id before 'bool'". template<class T> concept test1 = requires(T x) { x.foo() -> std::same_as<bool>;}; Currently we get "error: wrong number of template arguments (1, should be 2)". I would like something like "error: requires item needs curly brackets if requiring return type yielded from an expression". I know this will seem an inconsequential enhancement request, but I lost several hours of productivity today because I forgot the curly brackets in some deeply nested requires clauses, and the current GCC diagnostics did not help my tired old eyes see I had forgotten the curly brackets. I kept staring at it, couldn't see the issue, and it was curly brackets all along.