New Revision of C++ Programming Language: C++11
The Final International Draft standard (FCD) was unanimously approved on August 12th, 2011. The standard should be published this year. The draft name of the standard is C++0x, but since it will be published this year, it should probably renamed C++11, and if there are delays in its publication it could well be renamed to C++12.
You can download the 1334 pages “Working Draft, Standard for Programming Language C++” to get the full details.
If you don’t feel like going thru that massive document, but still want to learn about C++0x, I recommend you check the C++0x FAQ on Bjarne Stroustrup (The creator of C++) homepage.
Here are some the new features and improvements:
- initializer-lists – Initializer lists are not just for arrays any more
- uniform initialization syntax and semantics
- template aliases (previously know as template typedef)
- rvalue references
- defaulted and deleted functions
- variadic templates
- auto – deduction of a type from an initializer
- inherited constructors -
- decltype – the type of an expression (replacement for typeof)
According to Stroustrup, these enhancements are sufficient to make C++0x feel like a new language.