C++14 is done -- here's what's new

ISO draft international standard for latest version of C++ has been approved and expands on features introduced in C++11

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.

After C++ creator Bjarne Stroustrup designed the language in 1979 -- it was originally called "C with Classes" -- it became widely used by systems programmers and platform-native developers writing apps where performance was the order of the day. But for some time, other languages have been gaining ground on C++ in systems and apps. Mozilla has its Rust low-level programming language, which is being used to create a next-generation browser engine, among other items. Google's Go language is designed for building systems software, with native features for creating highly distributed and concurrent applications. And the rise of languages like Python and JavaScript, which allow for faster software development by eschewing the type safety and sheer speed of C++, has produced app cultures that might not have been possible under the formalism of C++.

Despite all this, Stroustrup remains confident that C++ will continue to thrive, thanks to its speed and breadth of support -- both with programmers and with the standards body that pushes it forward.

"People have been predicting its demise quite enthusiastically for more than 20 years," he told InfoWorld last week, "but it's still growing. Basically, nothing that can handle complexity runs as fast as C++."

This story, "C++14 is done -- here's what's new," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

Copyright © 2014 IDG Communications, Inc.

How to choose a low-code development platform