The ISO C++ committee (catchily called the SG22 WG21) have this weekend approved the final draft of the so-called C++0x standard, which will go through final editing and publishing this summer.
The C++0x standard will be known as C++ 2011 (you may see it referred to as "C++11") despite its more common label. The reason it's called 0x not 1x is that it has been eight years in the building - and a series of bureaucracy delays in the ISO group have caused it to be delayed until this year and into a decade.
But what's actually new in C++0x / 2011? Bjarne Stroustrup, creator of C++, has an extremely useful FAQ he keeps updated to help developers keep track of what is coming in the new standard. C++ 2011 is a superset of the previous standard C++98, meaning there are no breaking changes and everything should continue compiling as you expect. The "auto" keyword has been repurposed from its previous unused and outdated implementation to provide initialiser type deduction; you can enumerate classes in different ways with the enum class type; you can make compile-time assertions with static assert; there is thread-local storage capability; and endless other improvements and changes.
But where does it go from here? Compiler developers have already got some C++ 2011 features in, and more are expected to arrive over the next couple of years. Nobody implements all of the features yet, but a lot are supported by G++ and the Microsoft C++ compiler.
Comments