是否有对新 C++0x 有良好支持的编译器?
我使用 GCC,但不幸的是当前版本 4.4 对新功能的支持很差。
Apache 标准 C++ 库项目维护主要编译器的 C++0x 支持的 wiki 页面。
以下是供应商页面的链接,这些页面描述了他们的 C++0x 支持:
唯一实现了概念的编译器是conceptgcc(即使它是不完整的——但它足以让你对这个特性有一个好的感觉)。
Visual C++ 2010 Beta 有一些有用的 C++0x 支持——您可以使用 lambda、右值引用、auto、decltype。
Comeau C++ 或基于 EDG 的编译器出人意料地没有我预期它们在 C++0x 实现中的先进程度。
GCC 4.4(可变参数模板、初始化列表、内联命名空间、autor、decltype)可能在任何其他编译器中实现了最多的功能,但在概念和 lambdas 方面落后(单独的分支开发正在进行中)。
Comeau 编译器的当前beta 版本似乎具有良好的 C++0x 支持。
GCC 4.4 至少有一些很酷的特性(auto
、可变参数模板、右值引用等)。还有概念和 lambda 的开发分支。
请参阅GCC 中的 C++0x 支持。
Scott Meyers 在这里进行了详细的比较:
2011 年 3月 25 日发布的 GCC 4.6 支持C++0x 的大部分非并发相关特性。现在 C++0x不再处于不断变化的编译器支持中,可能会进展得更快一些。
C++0x 还没有准备好,所以不要指望它支持 atm。GCC 4.4 和Visual C++ 2010是很好的候选(它们有一些最受期待的新功能,如 lambdas 和 auto),可以帮助您入门,但标准尚未完成。
如果你在 linux/unix 上,我推荐英特尔编译器,它比 GCC 得到更好的支持并且生成更快/更小的二进制文件(我通常使用它可以获得 10% 的免费性能提升)