https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98768

--- Comment #3 from Antony Polukhin <antoshkka at gmail dot com> ---
Another attempt to make the feature request clear

GCC-16 for the following snippet
```
template <typename Function, typename T>
concept Callable0Arg = requires(Function func) {
    { func() } -> T;  // mistake
};
```

provides a diagnostic:
```
<source>:3:19: error: return-type-requirement is not a type-constraint
    3 |     { func() } -> T;
      |                   ^
```

The diagnostic is correct, but it is not user friendly because users have to
search for 'type-constraint' term, and realize that after the `->` should be a
concept name.

Clang provides a more beginner friendly diagnostics directly saying that:
```
<source>:5:19: error: expected concept name with optional arguments
    5 |     { func() } -> T;
      |                   ^
```

Please improve the GCC diagnostic for the above case to something like "error:
expected concept name after `->`." Fixit hints like `-> std::same_as<T>` could
be helpful too

Reply via email to