【问题标题】:Any implementations of C++0x out there?那里有 C++0x 的实现吗?
【发布时间】:2010-03-19 11:13:57
【问题描述】:

除了微软即将推出的 VC10 之外?

【问题讨论】:

    标签: c++ c++11


    【解决方案1】:

    here 很好地细分了几个主要编译器对 c++0x 的支持

    【讨论】:

      【解决方案2】:

      您可以运行 g++ -std=c++0x 以获得大部分兼容的 C++0x 实现。

      来自手册:

      c++0x 即将发布的 ISO C++0x 标准的工作草案。此选项启用实验性功能,这些功能是 可能包含在 C++0x 中。工作草案不断变化,任何启用的功能 如果此标志不是 C++0x 标准的一部分,则可能会从 GCC 的未来版本中删除。

      作为一个愚蠢的小例子:

      $ cat a.cpp    
      const int FOO_VERSION = 2;
      
      int main() {
          static_assert(FOO_VERSION >= 3, "Your version of Foo doesn't contain the necessary bugfixes to run this program correctly.");
          return 0;
      }
      
      $ g++ -std=c++0x a.cpp
      a.cpp:1:17: error: stdio: No such file or directory
      a.cpp: In function ‘int main()’:
      a.cpp:6: error: static assertion failed: "Your version of Foo doesn\'t contain the necessary bugfixes to run this program correctly."
      

      另外,正如@GMan 在评论中提到的,GCC's list of C++0x compatibility 可以在网上找到。

      【讨论】:

      • AFAIK 所有线程和锁相关的东西都不见了,对吧?
      • 支持的功能列表及其对应的g++版本:gcc.gnu.org/projects/cxx0x.html
      • 特性页面上没有列出线程和锁的东西,但头文件包含在 gcc 4.4 中,内容看起来像新标准。
      • @Caspin:库状态被跟踪here
      【解决方案3】:

      Comeau -- 试试看here。不,我不为他们工作/不隶属于他们;)但他们在合规方面做得很好。

      英特尔还支持从 11.0 开始的some C++0x。 (当前版本是11.1)

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2011-06-23
        • 2010-09-18
        • 2011-08-22
        • 2010-10-06
        • 2011-06-19
        • 2011-12-30
        相关资源
        最近更新 更多