代码之家  ›  专栏  ›  技术社区  ›  Michel Krämer

TR1从升压或VC10-哪一个更好?

  •  5
  • Michel Krämer  · 技术社区  · 14 年前

    _HAS_CPP0X 开关(参见 here ),但我不确定这是否也会禁用将来可能会很有趣的其他功能。

    所以,我想知道TR1的更好实现是Boost的还是Microsoft的?有什么区别吗?禁用Microsoft实现是否有任何缺点?

    2 回复  |  直到 7 年前
        1
  •  1
  •   sbi    14 年前

    如果您的代码没有使用VC10的标准库进行编译,那么这可能表明它不符合标准。VC10中的标准库来自纯软件,这些家伙在实现标准库时还不错。(PJP曾经是lib工作组的主席)我会非常仔细地研究每一个问题,然后将其视为一个VC特有的问题,以免你将来可能无法兼容。

    此外,TTBOMK,VC10不仅与Tr1一起,而且与C++ 1x(例如, std::shared_ptr 而不是 std::tr1::shared_ptr

        2
  •  0
  •   MOnsDaR    11 年前

    第一个:
    你应该能够同时使用Boost和TR1。如果一切都配置正确,你没有乱来 using namespace

    C++ 11 提供如下功能 auto more info )或者在类属性声明期间初始化它们( more info )这一点是无法提供的。

    在另一边 促进 提供的不仅仅是C++ 11的功能。本质上是一个被认为是被添加到C++标准的库集合。

    当谈到两者都提供的特性时(比如 shared_ptr )我建议使用Boost:

    • 用编译器编译,它不支持某些C++ 11特性
    • 您有明确的依赖关系,而不是仅仅在C++ 11上进行中继(大多数编译器实现不同)。
    • serialization .

    我的建议 就是使用C++ 11,只要你绝对需要它,在所有其他情况下都能提升。