https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101811
--- Comment #4 from Tobias Schlüter <tobi at gcc dot gnu.org> ---
Hi Jonathan,
I know that we disagree about clang's error message and that's why I tried to
explain what makes clang's a better error message for me. My "parsing" of
clang's error message was not a comparison to gcc's, but an analysis how it
conveys all the information I need to find and fix the issue.
Glad to see that we more or less agree on the issues with gcc's message,
though. That's the important part anyway. I also like your suggestion. If we
are at a stage where grammatical niceties matter, I would make the symbol in
the first message the subject, so
<source>:6:6: error: 'template<int> void X::f()' matches no declaration
6 | void X::f()
| ^
<source>:2:10: note: non-matching declaration 'void X::f()' is not a template
2 | void f();
| ^
Thanks for correcting my misunderstanding about the status of the C++ FE, and
I'm glad to hear that. I really wonder where I'd picked up that piece of
misinformation. Actually, while I wrote this I was wondering "how do they
manage to stay up to speed with the latest versions then?" Now I'm less
impressed ;-)
Cheers!