代码之家  ›  专栏  ›  技术社区  ›  amit kumar

你开始使用C++0X了吗?

  •  5
  • amit kumar  · 技术社区  · 15 年前

    大多数编译器 already support C++0x .您是否开始使用C++0X或正在等待X的定义?我必须对代码进行一些重构;我应该开始使用新特性吗?

    9 回复  |  直到 14 年前
        1
  •  8
  •   Silfverstrom    15 年前

    C++0X还不是一个完整的标准。 在国际公认的标准发布之前,可能会有许多修订。 所以这一切都取决于,你写代码是为了什么?如果是为了工作任务,我会坚持使用常规C++,等待标准的设置,并给编程社区调整所需的时间。不要重构您真正需要实现的代码,它可能会给您带来很多麻烦。

    然而,我认为C++0X很好用,而且当0x被全局接受时,熟悉语法也不会有什么害处。

        2
  •  4
  •   James Hopkin    15 年前

    我已经开始使用 nullptr 使用 #define nullptr 0 对于那些还不支持它的编译器(即大多数)。

        3
  •  4
  •   beef2k    15 年前

    从你提供的链接来看,这似乎是你的真正意思 TR1 ,不是真正的C++ 0x。 ,我使用大多数新的TR1库已经相当长一段时间了,因为它们中的许多都是以前的 Boost 图书馆。

    我只能鼓励每个人也使用它们。

        4
  •  3
  •   Todd Gardner    15 年前

    我会推迟编写生产代码,直到“0x+Y”,在这里,Y是当它们从编译器中排除错误并使其成为标准兼容(无论标准是什么)时。

    但为了发展?我用它来玩耍,写作 project euler 等等。我也在演示文稿和新闻组上使用它。

        5
  •  3
  •   Artyom    15 年前

    很少有编译器支持某些东西。实际上,vs只支持tr1库,gcc支持variadic templateres、rvalue、auto等一些特性。英特尔编译器有一些。

    我开始使用变量模板,比如:

    #ifdef HAvE_VARIADIC
    template<typename... Args>
    void format(std::string,Args... args);
    #else
    template<typename T1>
    void format(std::string,T1 p1);
    template<typename T1,typename T2,>
    void format(std::string,T1 p1,T2 p2);
    ...
    template<typename T1,typename T2,...,typename T10>
    void format(std::string,T1 p1,T2 p2,..., T10 p10);
    #endif
    
        6
  •  2
  •   Gramic    15 年前

    我们已经玩了C++0X很多,现在当GCC支持一些功能,我们将使用它们,一旦它们可用。 原因很简单——使用auto关键字可以节省大量的输入,使用rvalue引用可以提高性能,使用初始值设定项列表和变量模板可以减少输入,使代码更可读。

    实际上,C++0X标准的主要目标也是我们的目标,因为我们将凭借这些特性对我们的竞争对手有优势。这就是为什么我们不用等待就可以使用它们。当然,如果您需要多平台兼容性,那么这个步骤是不可接受的。如果你不在乎它,立即使用它,你只能赢。

        7
  •  2
  •   crelbor    14 年前

    是的,我已经使用C++ 0x并发布了开源库和代码。所有我未来的C++开源项目都将用这个变体编写。在使用变量模板参数和decltype/auto之后,我不能返回!

        8
  •  1
  •   rlbond    15 年前

    当Visual Studio 支持它。现在,VS10只支持一些功能。

        9
  •  1
  •   T.E.D.    15 年前

    我们仍在从VS6转向VS2005。我们可能不会使用专门的C++0X编译器来进行新的工作,直到201x后期。