C++14, the newest draft standard for the C++ language, has been approved and is now set to be published later this year.
"We have CPP++14!" proclaims the title of a blog post at IsoCPP.org, the website for the Standard C++ Foundation, which claims that delivery of C++14 was "the fastest turnaround for a new standard in the history of C++."
The post also boasts another first for C++, namely "multiple substantially or entirely conforming implementations (modulo bugs) of C++14 available already today or in the near future -- at the same time time C++14 is published." In other words, people don't have to wait for development tools to catch up to the standard before being able to use it, barring whatever minor changes are made to C++14 between now and publication.
The changes C++14 brings to the language are minor but numerous, and many of them are designed to expand on the previous version of the C++ standard. That version, C++11, introduced mostly minor and incremental changes to the language, but they were designed to bring unity to features that until then had been provided in nonstandard ways. Of chief interest was the way thread-level and lock-free concurrency were handled -- a topic of major interest to the systems programmers that have become C++'s main users. Also new to C++11 was lambdas, a feature that's now a mainstay among other widely used languages and was recently added to Java 8.
C++14 polishes those features and adds a few more. Lambdas, for instance, can be now be expressed generically -- typical in other languages that use lambdas. "Constexpr," a way for functions to be evaluated at compile time, can now contain a broader range of instructions and consequently are a little more powerful. And support for some user-defined literals are now available in the standard library, although at this point only for strings and time intervals.
Sign up for CIO Asia eNewsletters.