【问题标题】:Should I prefer Boost or the C++11 standard library, if I'm already using Boost? [closed]如果我已经在使用 Boost,我应该更喜欢 Boost 还是 C++11 标准库? [关闭]
【发布时间】:2017-10-10 12:43:07
【问题描述】:

在我的项目中,我使用boost::asio 进行网络和线程管理。我想使用现代 C++ 的一些特性,例如共享指针。

有两个选择:boost::shared_ptr,因为我已经在使用 Boost,std::shared_ptr,因为我正在使用 C++11 编译器。据我了解,它们基本上是等效的,但是它们彼此不兼容。

我读到我应该更喜欢标准库组件而不是 Boost,而不是毫无意义地使用外部依赖项。但是我仍然会使用 Boost(至少在他们决定将 ASIO 集成到标准库之前),所以我仍然需要这种依赖。

共享指针只是一个例子,这个问题适用于标准库从 Boost 接管的所有功能,例如functionbindthread 等。

鉴于我的情况,该功能的首选实现是什么?在使用其他一些 Boost 或标准库组件时,我是否需要专门使用 Boost 或标准库版本?

【问题讨论】:

  • 当您可以从标准库中获得相同的值时,使用 boost 替代方案的理由是什么?我什么都不知道
  • 基于意见?也许我是一只教条主义的老猫,但反对我的观点是没有道理的。因此,答案是具体的。
  • 如果一个关于使用标准的意见是一个标准意见,它不应该只是一个标准吗?

标签: c++ c++11 boost


【解决方案1】:

尽管 Boost 实际上是未来 C++ 标准的提供者,但它是否没有标准化,因此如果您选择 Boost 而不是 C++ 标准库,那么您总是会受到兼容性中断的摆布。 (例如,参见 Boost Spirit 的历史性重大更改)。

因此,编码时始终着眼于尽可能迁移到 C++ 标准库。

使用 C++ 标准库函数也可以更轻松地进行编译器优化,因为它们的精确行为由标准定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多