2009-06-11 37 views
9

是否有一个编译器对新的C++ 0x有很好的支持?编译器支持即将推出的C++ 0x

我使用GCC,但不幸的是,当前版本4.4对新功能的支持不足。

+0

重复的http://stackoverflow.com/questions/657511/c-compiler-that-supports-c0x-features – 2009-06-11 11:47:59

+4

任何所谓的重复问题,不具有Comeau功能(或任何基于EDG的编译器,例如,英特尔;我不挑剔)作为一个答案是不值得链接到。 :-P – 2009-06-11 11:51:15

+0

@Chris,问题是否重复与其答案无关。如果您认为缺乏其他问题的答案,您可以通过添加自己的答案来解决问题。 – 2011-02-22 01:17:09

回答

4

具有一个唯一的编译器概念的实现是conceptgcc(甚至是不完整的 - 但它足以让这个功能获得良好的感觉)。
Visual C++ 2010 Beta有一些有用的C++ 0x支持 - 你可以玩lambda表达式,右值引用,auto,decltype。
Comeau C++或基于EDG的编译器令人惊讶地不像我期望的那样先进,它们在C++ 0x的实现中。 GCC 4.4(可变参数模板,初始化列表,内联命名空间,autor,decltype)可能具有实现其他编译器功能最多的功能,但在概念和lambda表达式方面存在滞后性(独立分支开发正在进行)。

3

Comeau compiler的当前beta version似乎有良好的C++ 0x支持。

+0

我已经尝试http://www.comeaucomputing.com/tryitout/在线编译器......它不会编译`std :: shared_ptr` ... – 2010-11-15 13:43:28

+1

@Stephane:它是`std :: tr1 :: shared_ptr `,而不是`std :: shared_ptr`。 – 2010-11-16 16:02:51

+0

thx的评论;-)我会再试一次。 – 2010-11-16 16:10:14

1

C++ 0x还没有准备好,所以不要指望它支持atm。 GCC 4.4和Visual C++ 2010是很好的候选人(他们有一些最令人期待的新功能,如lambda和汽车)可以帮助你开始,但是标准还没有完成。

3

GCC 4.4也至少有一些很酷的功能(auto,可变参数模板,右值引用,等等)。还有概念和lambda的开发分支。

请参阅C++0x support in GCC

1

我建议英特尔编译器,如果你的Linux/UNIX上它有比GCC更好的支持,并产生更快/更小的二进制文件(我通常用它得到一个免费的10%的性能提升)