6 ms·
Looking at the release notes for Clang, there are no new C++20 features. Clang is really falling behind GCC and even Microsoft Visual C++ with regards to C++20
by RcouF1uZ4gsC 5y ago
Looking at the release notes for Clang, there are no new C++20 features. Clang is really falling behind GCC and even Microsoft Visual C++ with regards to C++20 implementation.
https://en.cppreference.com/w/cpp/compiler_support/20 https://en.cppreference.com/w/cpp/compiler_support/20
- cracauer 5y agoSadly format did not make it.
- Thev00d00 5y agobut we have fmtlib thank goodness
- cute_boi 5y agoalso it doesn't support many hardware compared to gcc and people seem to be more crazy about it idk why :(
- h2odragon 5y agoThings like this will win fans: https://blog.matthieud.me/2020/exploring-clang-llvm-optimization-on-programming-horror/ https://blog.matthieud.me/2020/exploring-clang-llvm-optimiza...
- pjmlp 5y agoThe two main backers (Apple and Google) seem to have backed out. From my point of view, for Apple, their use of C++, C++17 is good enough. Metal uses a C++14 dialect as shading language, IO and DriverKit an embedded friendly subset, for everything else there is Objective-C and Swift. Google seems to have been put off by losing the ABI vote and changed focus into Abseil instead, and have their own Draconian style guide anyway. And are increasingly adopting Rust as well. Intel, ARM, IBM, Sony, Nintendo will have to jump in. By the way, concepts were mostly implemented by a single guy!
- jabl 5y ago> Intel, ARM, IBM, Sony, Nintendo will have to jump in. Intel and IBM have recently announced their own proprietary LLVM-based compilers, but they seem more interested in backend work to make their own CPU's look good [1] than spending resources on frontend work. I guess that applies to ARM as well. Sony and Nintendo are, I guess, mostly satisfied? They just want a decently good compiler and toolchain ecosystem, but for games most performance comes from the GPU anyway, chasing low-single-digit performance increases for CPU code doesn't seems like a super good investment opportunity for a game console company.
- mwcampbell 5y agoIt surprises me, though, that GCC is ahead (assuming the GP is correct). Anyone here know who's driving C++20 support in GCC?
- nsajko 5y agoIt's not just modern C++ support. C/C++ implementations mostly get taken for granted, but taking a look at the LLVM bug tracking is horrifying - there are huge amounts of years-old reports that nobody seems to be working on even though they're serious. Even things like valid C++ code failing to compile because Clang fails to parse it, if I remember correctly. I don't have a point with this other that it's surprising (for end-users like me). Also, I'm not sure how GCC compares.
- woodruffw 5y ago> Also, I'm not sure how GCC compares. Not favorably. Both projects have massive "backlogs," by naive metrics. Maintainers for both are in a double bind: people get mad when you close their years-old issues because they can't be reproduced anymore, and people give you grief for not closing issues.
- mlvljr 5y agoNow you might have a better idea, with the downvotes. :)
- zauguin 5y agoAccording to clang's C++20 status list, clang 13 adds `using enum`, more implicit moves and partial support for lambdas in unevaluated contexts.
- google234123 5y agoAre many of the C++20 features even ready for prod? ranges, concepts, modules...?
- pjmlp 5y agohttps://en.cppreference.com/w/cpp/compiler_support/20 https://en.cppreference.com/w/cpp/compiler_support/20
- Koshkin 5y agoGCC FTW
- crispyalmond 5y agoI'm super impressed by MSVC these days. The team is doing good!
- pjmlp 5y agoIn what concerns ISO C++ compliance, yes. In what concerns throwing out C++/CX out of the window and tell us to go back to the days of ATL 3.0, and wait for the day Herb's metaclasses arrive into the standard, not so much.
- Koshkin 5y agoI think Microsoft did the right thing here. A proprietary extension to a programming language is expected to be short-lived anyway, unless it makes its way into the standard, which is something that must be planned for from the beginning.