March 2011

BIG: C++ Strategies, Data Structures, and Algorithms aimed at Scalability.

Current trends suggest that horizontally-scaled, highly distributed, service-oriented architectures—of the kind used by Google, Facebook, Yahoo, and others—will become increasingly prevalent. Today’s advanced knowledge of scalability of distributed systems will most likely become tomorrow’s elementary topics. Such knowledge is likely of particular interest to C++ developers because—unlike in recent history—use of an efficient system-level language with strong modeling capabilities will translate directly to a good scaling factor (e.g. users per server and functionality per user) or, conversely, dramatic savings (in servers count, power consumed, maintenance, and more). The free lunch is over, so we better figure what’s for dinner.

Life in a (server) farm is harsh. You need to use quite a few non-intuitive strategies a C++ programming style because minute choices may cause large visible differences. For example, under certain circumstances, if you need a hash, you can’t get away with a map without ruining your performance. Several less known data structures and algorithms are necessary for coping.

This talk explores a broad range of distributed systems topics from service oriented architectures to reliability to exotic-yet-useful tidbits such as fast set intersection (“galloping search” is not only about Black Friday!), numeric kernels, Bloom filters, and more.

The official presentation materials from C++ and Beyond 2010 are now available for purchase.  The price is $24.95 for single copies, and volume discounts kick in if you buy 10 or more (e.g., a copy for each member of your team).  That’s a 99% discount compared to the price of having attended C&B last year :-)

These are the same materials attendees received, and they include everything presented at both the October and December editions of the event, including “Loose Ends” and “Sneak Peek” materials put together by me and Herb, respectively, in response to questions and issues that came up during the events.

Because these are presentation materials, you’ll sometimes have to read between the lines to connect the semantic dots.  And in those places in my materials where I used animations to show dynamic behavior, you’ll see that all the images for an animation sit on top of one another.  Fortunately, you don’t have to imagine what the materials are like or try to envision whether you will find them useful, because you can simply download the free sample and see for yourself.

For those of you who would have liked to attend last year’s C&B, but were unable to, these materials are the next best thing to having been there.  They can also serve as an indicator of the kinds of technical treatments you can expect at this year’s C&B, although of course this August we’ll cover completely new material.  (We’ll start posting prospective session topics soon.  Currently, Herb is in Madrid working with the rest of the C++ standardization committee to dot all the “i”s and cross all the “t”s that are necessary to finalize C++0x.  That will set the stage for us to be able to discuss the new version of C++ at C&B 2011 in Banff without having to preface every statement with “draft.” Finally!)

Please check out the presentation materials from last year’s C++ and Beyond.  I think you’ll like what you see.



The headline pretty much says it all:  Registration for C++ and Beyond 2011 has begun.   The essential information (thanks to copy and paste from my post of February 25) is as follows:

  • The dates are August 7 through August 10.
  • All our technical presentations will be new. There will be no reruns of talks we gave at C&B last year.  Herb, Andrei, and I all have as a goal to offer truly new presentations, so even if you’ve read all our publications or attended other public talks by us, what you get at C&B 2011 will be something that’s not only insightful and useful, it’s also likely to be something you’ve never seen before.
  • Location is the Banff Springs Hotel, where we negotiated a nightly room rate of $189 (Canadian), which is less than half the going rate at places like Expedia, Kayak,, etc.
  • Pricing is the same as last year, i.e., US$2995 for individual registrations, with 10% discounts for early birds and an additional 10% off for groups of three or more.  Early bird registration will run through June 10.

You’ll see at the FAQs page and the hotel page that registration includes free Internet access throughout the hotel.  Simple and straightforward, right?  Sort of.  The (truly very nice) people at the hotel wanted us to require that you sign up for their Presidents Club to get complimentary Internet access.  Enrollment is free, but we weren’t wild about the “require” part, so we negotiated a compromise.  The hotel agreed that you don’t have to sign up for anything (except C&B) to get free Internet access throughout the hotel.  In return, we agreed to convey the following information:

Fairmont Hotels offer an individual benefits program called “The Fairmont Presidents Club”. Some of you may already be members.  If so, please be sure to quote your Fairmont Presidents Club membership at time of reservation or on arrival at the hotel in order to receive applicable benefits. For guests who are not Fairmont Presidents Club members, you are encouraged to enroll, as there are some worthwhile benefits for first time members (e.g., complimentary fitness access, etc.) and enrollment is free. Please visit for details and enrollment procedures.  NOTE: you must be a member prior to arrival at the hotel in order for benefits to apply to that stay.

Herb, Andrei, and I look forward to seeing you in Banff in August!



The article I mentioned in my last post (“Appearing and disappearing consts in C++”)  has itself disappeared from the DDJ web site and reappeared here (in PDF).  If you’re interested in details about why this happened, please consult this blog entry at my professional blog.

I apologize for the confusion.



[Some of the links in the post that follows were made obsolete shortly after publication, so I have unlinked the corresponding text.  The article referred to below is now available at this location (in PDF).  For details on what happened and why, consult this blog entry at my professional blog.]


[This post came from my professional blog.  I’m repeating it here, because I don’t assume that everybody interested in C&B follows that blog.]

It’s been a couple of years since I got the itch to write a technical article, but I recently found myself thinking about types in C++ and how the language sometimes adds or removes const without your explicitly asking it to do so.  This is especially the case when it comes to new features in C++0x such as decltype and lambda expressions.  The result is “Appearing and Disappearing consts in C++” at Dr. Dobbs.  The normal online version of the article is available here, but I think the formatting they use makes it difficult to read, so I suggest you view the printer-formatted version of the article instead.

I hope you find the article interesting and the information in it useful.