C++ 0x将不再具有概念.意见?这会对你有什么影响?

rlb*_*ond 8 c++ c++11 c++-concepts

法兰克福举行的2009年7月的C++ 0x会议上,决定从C++ 0x中删除概念.就个人而言,我很失望,但我宁愿有一个可实现的C++ 0x而不是没有C++ 0x.他们说他们将在以后加入.

您对此决定/问题有何看法?它会对你有什么影响?

dal*_*lle 8

就个人而言,我并不太乐意删除,因为概念的目的主要是改善编译时错误信息,正如概念提案的共同作者之一Jeremy Siek写的那样(http:// lambda-the-ultimate .org/node/3518#comment-50071):

虽然Concepts提案并不完美(C++的任何扩展是否真的可以完美?),它可以为语言提供一个非常实用且有用的扩展,这个扩展可以大大减少当前模板库用户的臭名昭着的错误信息被困扰着.

当然,概念的目的不仅仅是让编译器能够提供更短的错误消息,但目前我认为我们都可以在没有它们的情况下生存.

编辑:Herb Sutter也在他的博客上写道:

问:这不是C++ 0x的一大特色吗?

答:不会.概念会很棒,但对于大多数用户来说,除了错误消息的质量之外,概念的存在与否对他们使用C++ 0x的体验没有影响.

问:关于为语言添加主要的新表现力的概念不是,因此启用主要的新类型的程序或编程风格?

答:不是.概念几乎完全是为了获得更好的错误消息.


Mat*_*ice 6

我很期待他们.主要是为了在编译失败时更好地报告错误.没有什么比阅读1000个字符串来弄清楚你的愚蠢错误了.