- C++0x (the next version of the C++ Standard) takes big steps toward improving the efficiency of code — a big win for game developers.
- C++0x has a lot of new features. Most of the new features are not language features, but new standard libraries. Most of the language features are designed for library writers.
- You can find the current working draft of C++0X (May 2008) at http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2606.pdf. Lots of goodness to sink your teeth into.
- Concepts, one of the most significant potential language features, is not in the draft. However, it is still being considered for inclusion.
- Borland has re-energized its C++ effort and is working on a C++0x compiler.
- Meta languages continue to be a surprising mini-topic. Observed C++ meta-languages from this year included:
- template metaprogramming (of course)
- boost::format language
- regex regular expression language
- boost::spirit simple grammar parser
- boost::parameter function definitions
Here’s one of my favorite new features of C++0x. I hate writing code like this:
for( std::vector<Stuff>::iterator i = v.begin(); i != v.end(); ++i ) // C++ today
Wouldn’t it be nice if the compiler just knew what i was. It has to be the return type of v.begin(), right? C++0x allows you to avoid all that crazy typing:
for( auto i = v.begin(); i != v.end(); ++i ) // C++ in the future
That gives you a tantalizing glimpse of one of the many new features we have to look forward to in C++.