Long-time Slashdot reader mejustme shared this report from Hackaday:

If you have an opinion about C++, chances are you either love it for its extensiveness and versatility, or you hate it for its bloated complexity and would rather stick to alternative languages on both sides of the spectrum. Either way, here’s your chance to form a new opinion about the language. The C++ standard committee has recently gathered to work on finalizing the language standard’s newest revision, C++20, deciding on all the new features that will come to C++’s next major release.

After C++17, this will be the sixth revision of the C++ standard, and the language has come a long way from its “being a superset of C” times. Frankly, when it comes to loving or hating the language, I haven’t fully made up my own mind about it yet. My biggest issue with it is that “programming in C++” can just mean so many different things nowadays, from a trivial “C with classes” style to writing code that will make Perl look like prose. C++ has become such a feature-rich and downright overwhelming language over all these years, and with all the additions coming with C++20, things won’t get easier. Although, they also won’t get harder. Well, at least not necessarily. I guess? Well, it’s complex, but that’s simply the nature of the language…

From better type checking and compiler errors messages to Python-like string handling and plans to replace the #include system, there’s a lot at play here!

The article mentions coroutines, the spaceship operator for three-way comparisons, and “a bunch of additions to lambda expressions,” as well as a new keyword constinit and removing limitations on the usage of constexpr.

And in addition, “ranges are the new iterators” and concepts “have graduated from being an experimental feature to a full-fledged part of the language standard, allowing the addition of semantic constraints to templates, and ultimately making generic programming a hint more specific.”

Share on Google+

of this story at Slashdot.

…read more

Source:: Slashdot