JEP draft: Move the JDK to C17 and C++17
openjdk.org
openjdk.org
I've moved projects to C11 for atomics and threads, but never saw a reason to move to C17.
As for the differences between C++14 and C++17, the things I use most often are consexpr if, variable declaration in if statements, std library features like std::optional and std::string_view, lambdas got more powerful, and probably a bunch of other things I'm forgetting. There are a ton of "What's new in C++17" articles you can find online if you want more information.
It’s about as weird as writing “HTML/CSS/JS”, or “Java/Kotlin”. Like it or not people write related languages and technologies that way.
Makes about as much sense as Java/Javascript at this point.
Do you know what “ISO/IEC JTC1/SC22/WG21/SG22” is? It’s the C and C++ Compatibility Study Group for ISO C++. For instance the only reason C++20 added designated initializers was for improving C compatibility.
Stop pretending C and C++ have nothing to do with each other. Using “C/C++” is fine.
That would be true if you ignore the fact that designated initializers are superb syntactic sugar that greatly contributes to fewer bugs and better readability.
Note that many compilers backport defect reports to older language versions (i.e. they unconditionally adopt the new behavior independent of the -std= switch). The changes above can change the meaning of existing valid programs, so we're a bit more careful there. However I believe gcc+clang both have always used the new post-DR481 behavior for _Generic (essentially, a gcc+clang bug was resolved by changing the language standard in C17, because the gcc+clang behavior makes more sense than the C11 specified behavior).
By the way there is nothing about C on the JEP.
https://en.cppreference.com/w/cpp/compiler_support
VC++ is the only one with good enough C++20 support, and even it, it isn't without issues.
So C++17 is the best one can get for portable code, and compared with traditional C derived languages versus other high level languages, quite productive.