18 ms·
It's nice to see how GCC developers have worked hard in recent years to keep their compiler up to the most current standard. It's sad the same can't be said abo
by qalmakka 4y ago
It's nice to see how GCC developers have worked hard in recent years to keep their compiler up to the most current standard. It's sad the same can't be said about Clang which, despite the fact LLVM has basically EVERYONE behind, still struggles to implement the entirety of C++20 after more than 2 years. And this is without taking libcxx into account, which has been also struggling despite the fact is way newer and cleaner than libstdc++.
It's basically as if Google and Apple don't really give a damn about keeping up with C++ standards, so they always get pushed on the back burner.
- pjmlp 4y agoThanks license, that is why. Most of those people behind, care about the LLVM infrastructure and not so much about upstreaming clang stuff or improving ISO C++ compliance.
- nikic 4y agoI don't see how the license is relevant here. It's not like companies have already implemented full C++20 support in their local forks and just haven't bothered upstreaming it. But yes, a lot of LLVM users don't care about C++ standard compliance at all, for example because they don't use C++.
- pjmlp 4y agoNot C++20 per se, but certainly language features.
- nikic 4y agoFor reference, here are the C++ support pages for GCC and Clang: https://gcc.gnu.org/projects/cxx-status.html https://gcc.gnu.org/projects/cxx-status.html https://clang.llvm.org/cxx_status.html https://clang.llvm.org/cxx_status.html
- zarzavat 4y agoC++20 is coming into a world with much more competition than C++11 did (the last comparably sized standard). When C++11 came out Rust, Go, Zig, Swift were all either in their infancy or didn’t exist yet. There was a huge desire for C++ to improve and improve fast given its centrality. That world is not today’s world. Projects that would have been written in C++ in the past are often written in a different language now. This leaves C++ being useful mostly for legacy codebases, of which adopting new standards quickly is not so important.
- pjmlp 4y agoNone of those languages have the ecosystems that make C++ still relevant today.
- qalmakka 4y agoI think a large reason of why Clang lags behind in C++ standards is that Google and Apple don't really use modern C++ at all. Google has strict guidelines that prevent people to use half of the language (look at exceptions, for instance, without which most of the STL is crippled) and they use Abseil anyway, so they don't really care about the STL in the first place. Apple on the other hand mostly uses C++ in very restricted scopes such as DeviceKit which are very limited and can't safely use the entire language anyway. Xcode-shipped Clang and libcxx are often pretty old, too. They don't really need C++ that much above what C++03 already had, so it's clearly an afterthought for them.
- _0w8t 4y agoChromium finally switched to C++17 this year. The switch to C++20 will happen much sooner given that PNaCL support will be finally removed this summer.
- gpderetta 4y agoThat alone doesn't explain why clang conformance was very good till c++17 and then suddenly fell behind. The major clang contributors decided to focus their attention elsewhere, One guess is because they didn't get what they wanted within the committee.
- nyanpasu64 4y agoI'm still waiting for Clang to support capturing structured bindings in lambdas, which was partly legal in C++17 and fully legal in C++20.
- saurik 4y agoSame here: this one will be a game changer for me.