News flash: This afternoon, the ISO C++ committee approved the final technical changes to the C++0x standard. The new International Standard for Programming Language C++ is expected to be published in summer 2011.

The spring 2011 ISO C++ meeting was held on March 21-25 in Madrid, Spain. As previously reported, the goal of this meeting was to finish responding to national body comments on the Final Committee Draft (FCD), and to accept the last set of technical changes and approve a Final Draft International Standard (FDIS) for the final international ballot.

We reached that goal. Indeed, thanks to everyone’s hard work not just at this meeting but at and in between the meetings leading up to Madrid, we were done early enough in the week that we also got to work on resolving a number of lower-priority features and still end a day early on Friday, instead of also working all day Saturday as originally planned. (That said, it wasn’t a holiday — as usual for ISO C++ meetings, pretty much every day you could find roughly half of committee members working long past midnight in technical group sessions on particular issues and updating and reviewing proposed wording changes, then starting up again bright and early the next morning.)

Where are we in the process?

At around 16:00 Madrid time on Friday, the committee voted to approve the FDIS document, to many rounds of applause and thanks to our hosts, our project editor Pete Becker, our subgroup chairs Bjarne Stroustrup, Steve Adamczyk, Alisdair Meredith, Howard Hinnant, Lawrence Crowl, and Hans Boehm, and everyone else who has worked so hard over the last few years to bring us to this point.

The work isn’t quite done yet. The project editor now needs to update the working draft with the changes approved at this meeting, and a review committee of over a dozen volunteers will review it to help make sure those edits were made correctly. The result will be the FDIS draft. Once that happens, which we expect to take about three weeks, we will transmit the FDIS to ITTF in Geneva to kick off the final up/down international ballot which should be complete this summer.

If all goes well, and we expect it will, the International Standard will be approved and published in 2011, henceforth to be known as C++ 2011.

A word about quality

Just like the first time a decade and a half ago, this time we again took longer than we initially thought to produce the second C++ standard. Partly it was because of early ambitious feature scope, but primarily it was in the name of quality.

Perhaps the most heartening thing to me is that this standard is widely considered among committee old-timers as the highest-quality FDIS document we have shipped in the history of WG21, and we believe it to be clearly in superbly better shape than the first standard’s FDIS that we approved in November 1997 for ballot in early 1998. This time, virtually all features have actually been implemented in at least some shipping compilers, and design churn and overall design risk are significantly lower. This is particularly thanks to having shipped a large set of C++0x’s extensions first in the form of the (non-normative) Library Extensions TR (aka Library TR, aka TR1) which encouraged early vendor implementation of its features in a form that the committee could still tweak, even with breaking changes as needed, before incorporating them in an international standard.

Of course, we know there are bugs and as usual we expect to have a tail of Defect Reports (DRs, aka bug fixes and patches) to process over the next few meetings; but the tail is smaller, and many of those most involved expressed clear confidence that it will be far less than the five-year tail we had on the first standard.

But, as Josee Lajoie said so eloquently in Morristown in November 1997, and as Bjarne Stroustrup and others echoed this afternoon: “Hey, we’re done!”

Let me once again express my personal thanks and appreciation to everyone who has contributed in person and electronically to this standard. We couldn’t have done it without you. Thank you, and enjoy the moment!

Looking forward

It’s our tradition to schedule one meeting a year outside the continental United States, and preferably outside North America, because this helps international participation by making it easier for people from all parts of the world to attend. Next year, as we’ve done before, this “un-American” meeting will be the Kona meeting, which is closer for folks in eastern Asia and Australia who may wish to attend.

Here are the planned dates and locations for the remaining 2011 and 2012 ISO C++ standards committee meetings:

August 15-19, 2011: Bloomington, IN, USA

March, 2012: Kona, HI, USA

September, 2012: Portland, OR, USA

Herb