C++ and Beyond

A couple of weeks ago I attended C++ and Beyond, a conference by Scott Meyers, Herb Sutter and Andrei Alexandrescu.

There were 60 attendees, including performance programmers, C++ Standards committee members and library authors. I attended because most Xbox titles are written in C++, not to mention the majority of the Xbox platform itself. There are many changes afoot in C++, and a good portion of these updates revolve around performance: multithreading performance, runtime performance, and the productivity gains that come from writing code that’s easier to understand.

Here were the most significant takeaways for me from the conference:

  • C++0x, the next language standard for C++, is likely to be ratified in 2011. The proposal is currently in Final Committee Draft form, so the only changes between now and standardization are bug fixes.
  • The current draft standard (August 2010) is freely available.
  • C++0x improves code efficiency – a win for entertainment developers. The best examples are move semantics, rvalue references and perfect forwarding.
  • C++0x makes it easier for programmers to read and write C++. Type inference (see auto below) and lambdas are two examples.
  • C++0x is big. The draft standard adds over 500 pages to the 2003 Standard (1331 pages compared to 783 pages).
  • If there’s one thing in C++ that’s likely to have the impact on the most programmers, it’s auto. As Scott Meyers says: “auto is your new best friend.” Example:
std::vector<T>::const_iterator i = c.begin(); // C++03 complexity
auto i = c.begin(); // C++0x simplicity
This entry was posted in C++, Game Programming. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s