C++ standards committee met in Frankfurt, Germany

来源:互联网 发布:python 字典迭代 编辑:程序博客网 时间:2024/05/17 06:06

Beman Dawes, a C++ standards committee member and the founder of Boost, posted this to the Boost mailing page:

 2009-July-20

 

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

原创粉丝点击