So you complain about the most awesome thing which has happened to C++? A tool (libclang) which parses the code 100% the same as the compiler does including all the newest specs and quirks and then outputs more abstract data for IDEs to use. Itβs rather strange so many IDE developers waste so much effort to duplicate this C++ parsing algorithms and actually all of them fail at it. Not a single IDE has managed to properly parse C++ templates and C++11/14 features like auto declaration and so on.
I don't think it's fair to call captainmuon's comment a "complaint". More hoping for a healthy technical ecosystem. After all, clang is in itself partly a response to the prior gcc monoculture.
Right, I do think clang is a godsend. Finally reasonable error messages, modern compiler technology, you can interface it with tools for "intellisense" and syntax highlighting in many editors, ...
I have the "pleasure" to work with something called ROOT, which is a data analysis toolkit for particle physics. One major component is the C++ interpreter CINT. Now you can imagine a C++ interpreter is a very bad thing. Subtle differences in execution, scripts that are almost valid C++ code but not quite, etc.. ROOT tried to offload some parsing to GCC via GCC-XML, but IIRC that didn't work so well, and GCC-XML was also doomed for political reasons (RMS didn't want a stable interface to the internals of GCC, so that nobody could interface it with closed-source code). With the new version of ROOT however, they are moving to a clang based interpreter, which means much less bizarre bugs due to corner cases of C++.
(originally by Masaharu Goto, which lead to the saying "Masaharu Goto Considered Harmful"... I don't mean to offend that guy though)
Hilariously no attempts seem to be made to actually sort this out at the language level. Context free grammar anyone?
Fear of breaking backwards compatibility is what slowly kills languages eventually. As long as every new version needs to be backwards compaitbile you can only add and deprecate, never remove and fix.