C++ Status at the end of 2014
Table of Contents
This was a good year for C++!
Short summary (language features):
- Clang supports C++14
- GCC supports C++11 and most of C++14 (Full support in upcoming GCC 5.0)
- Intel 15.0 supports C++11 (some features on Linux/OSX only)
- Visual Studio tries to catch up with C++11, but it also introduces C++14 features as well… and it become (almost) free!
Last year in my summary for 2013 I had more data to analyze! This time it is a bit simpler, because I can leave C++11 conformance and focus on C++14. The latter standard is only a minor updated, only 12 features are included.
The chart below shows a general overview on the conformance for C++14. Note, that at the moment only language features are counted.
I’ve presented only Visual Studio, GCC, Clang and Intel compilers. To see more data from other compilers (IBM, Oracle, EDG…) look here at cppreference/compilersupport.
|Tweak to certain C++ contextual conversions||N3323||3.4||4.9||12||-|
|Return type deduction for normal functions||N3638||3.4||4.9||14||15|
|Generalized lambda capture (init-capture)||N3648||3.4||4.9||14||15|
|Generic (polymorphic) lambda expressions||N3649||3.4||4.9||14||-|
|Relaxing requirements on constexpr functions||N3652||3.4||5||-||-|
|Member initializers and aggregates||N3653||3.4||5||-||-|
|Clarifying memory allocation||N3664||3.4||n/a||-||-|
|Single-quotation-mark as a digit separator||N3781||3.4||4.9||14*||-|
* means a RTM or partial support
Visual Studio 2015 is VC 14.0 (not 13.0)
On the chart Visual Studio 2015 has around 58%, but I that includes partial support for two features, this can be a bit unfair.
Notes on the C++ Standard
- In February the draft for C++14 was published and in August it was successfully approved. More on cpp14 here at Dr dobbs
- Meeting in Urbana that discussed future changes. Link to the meeting minutes from the meeting.
- Interesting proposals are coming: see my list of top proposals here.
- Trip report: Winter ISO C++ meeting - summary after meeting in Issaquah, WA, USA on February 10-15.
- Link to the latest version of cpp standard support
- Microsoft opened .NET and made VS 2013 Pro free to use.
- Visual studio 2015 preview available
- The Great C Runtime (CRT) Refactoring, my summary of this huge improvementf can be found here.
- Current C++1y/C++14 Support in GCC
- GCC 4.9 available - see Release
<regex>should finally work!
- GCC 5.0 is expected next year (maybe April?)
- Concepts-Lite experimental GCC branch
- Current C++ Support in Clang
- LLVM 3.5.0 Released - see Release Notes
- Clang can be used as Visual Studio toolchain! See a document here.
This was quite a good year for C++! C++11 support is done for most of the compilers - although Visual Studio is, as usually, a little behind. We can also use some of the new features from C++14. The standarization committee and the whole community is very engaged in the process of improving the language. I think for C++17 we’ll see some nice additions to the standard.
Additionally, the long-awaited “Effective Modern C++” from Scott Meyers was finally published! It seems to be quite a good book and well respected by the readers.
What do you think?
- What do you think about C++ in 2014?
- What was the most important event/news for you?
- Are you happy with the progress in the standarization process?
Thanks for all the comments!
- Interlude @ Tales of C++ K-ballo - great summary of C++ status, with code examples, dates and insights. Highly recommended to read.
- C++ Has Become More Pythonic @preshing.com - new language features in C++ allow for more compact code.
- C++11⁄14 compiler and library shootout @cpprocks.com - good summary of features available in different compilers.
- [PDF] Five Popular Myths about C++, by Bjarne Stroustrup - myths debunked by the author of C++: about learning, efficiency, OOP, garbage collection…