BoostCon 2008


 
I spent the week of May 5-9 in Aspen, Colorado attending BoostCon. BoostCon is all about Boost, a collection of free portable C++ source code libraries.
 
This is the second year of the conference. There were about 80 attendees, including C++ luminaries, Standards Committee members, Boost library authors and Boost library power users. The reason I attended is because the conference includes discussions on hardcore C++ usage plus future language and library features. Many of the Boost libraries (there are about 80) are already in the draft of the next version of the C++ Standard, and much of the work that happens in Boost libraries leads to new language features and new library components. Being at BoostCon is a bit like travelling to the future of C++.
 
Conference Takeaways
  • 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++.

Advertisements
This entry was posted in C++. Bookmark the permalink.

One Response to BoostCon 2008

  1. Raider says:

    `auto’ keyword is for another purpose 😉 Iterating containers looks like this:
    BOOST_FOREACH(Element& el, Container) // C++ today
    for (Element& el : Container) // C++ in the future

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s