Boost logo

Boost :

Subject: [boost] [C++0x] Report from Frankfurt committee meeting
From: Beman Dawes (bdawes_at_[hidden])
Date: 2009-07-20 10:12:16


The C++ standards committee met in Frankfurt, Germany, last week. Key
actions:

* Concepts have been removed from C++0x.

The committee is very much in favor of Concepts. But Concepts are seen as so
important that they have to be right. And the strong consensus was that
getting Concepts right, for any reasonable definition of "right", would add
several years to the schedule. There was also a consensus that an
implementation of a compiler that could compile the entire standard library
is part of the definition of "right". While ConceptGCC has been a great
help, it isn't there as far as validating "right". Personally, I think Clang
may end up being the compiler that eventually validates Concepts.

* The range-based for loop and some other library features that were
dependent on Concepts will be retained by recasting them to no longer depend
on Concepts. See a paper in the upcoming post-meeting mailing to see how
range-based for loops will work.

* A second Committee Draft (CD2) will need go out for public comment in the
Spring or Summer 2010, given the amount of change required to remove
Concepts. The C++0x final schedule will thus slip about one year.

* No committee action was taken as to how Concepts will eventually make it
into C++. While there was a bit of discussion about doing a Concepts
Technical Report (TR), there was no such proposal made. Committee members
seem to lean toward letting the two rival Concept teams go back to work
outside of the committee process. The expectation being they will come back
to the committee when they are ready to restart the standardization process.
Hopefully the lessons learned about Concepts during the committee process
will be taken advantage of, so future standardization of Concepts will be
smoother.

My personal opinion is that removing Concepts will speed the arrival of
conforming C++0x compilers. GCC, for example, has already implemented much
of C++0x, so their key developers are no longer faced with the difficult
task of turning ConceptGCC into a production compiler, and can concentrate
on remaining major features like lambdas.

Although Concepts would have added a lot to C++ and Boost, Concepts would
also have presented major migration challenges. I'm thinking that for most
Boost libraries, migration to C++0x will now be easier and less disruptive.
We need to focus on the bright side.

--Beman


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk