The ISO C++14 draft international standard has been approved and will be published later in the year.
This is the fastest turnaround for a new standard in the history of C++, according to Herb Sutter in his announcement on the ISOCPP blog about the approval.
C++ creator Bjarne Stroustrup also says that the standard is historic because multiple substantially or entirely conforming implementations (modulo bugs) of C++14 were already available at the time C++14 was published.
“That has never happened before for a C++ (or I believe C) standard. For C++98, the delta between publishing the standard and the first fully conforming implementation being available was about 5 years. For C++11, it was two years. For C++14, the two have merged and we have achieved ‘time on target.’”
There are still some minor tweaks to be carried out – things like spelling typos and accidentally dropped words – but after that the document will be transmitted to ISO for publication this year as the brand new International Standard ISO/IEC 14882:2014(E) Programming Language C++.
There are a large number of listed improvements to C++, though all of them are fairly minor, and many of the changes are refinements to features added in C++11. Lambdas (introduced in C++11) can now have auto type parameters rather than having to be declared with concrete types;
The ability to deduce the return type of a function based on the type of expression passed to the return statement has been extended to all functions; in C++11 it was limited to lambda functions; you will now be able to create variables that are template – until now this was limited to functions, classes and type aliases. Other improvements add support for binary literals, aggregate member initialization, and fewer restrictions on constexpr-declared functions.
We now know that 2^74,207,281-1 is a prime and this is not only the largest prime of this form, a Mersenne prime, but the largest prime of any sort. Is this a discovery? After all, the number has been [ ... ]