【发布时间】:2009-04-08 03:07:05
【问题描述】:
我知道有一个版本的 ASIO 不包含在 Boost 命名空间中,但即便如此,ASIO 也依赖于 Boost,但我想知道是否有一种方法可以让 ASIO 在不依赖于 Boost 的情况下工作(因为我由于太多原因,无法将 Boost 包含到项目中)。
【问题讨论】:
标签: c++ boost boost-asio
我知道有一个版本的 ASIO 不包含在 Boost 命名空间中,但即便如此,ASIO 也依赖于 Boost,但我想知道是否有一种方法可以让 ASIO 在不依赖于 Boost 的情况下工作(因为我由于太多原因,无法将 Boost 包含到项目中)。
【问题讨论】:
标签: c++ boost boost-asio
不,我不这么认为。只要我听说过,ASIO 就一直在使用 boost。我认为它们是非常相互关联的。但是您可能对 bcp 工具感兴趣,它可以让您提取您想要使用的库所需的最小 boost 子集。
【讨论】:
NO_LIBS 定义来排除非标头库。我正在使用仅标头 asio 和仅标头提升。有什么好抱怨的?无需额外编译。
【讨论】:
boost::bind() 的情况下使用 ASIO 几乎是不可能的!
“非boost asio”有自己的线程位,而不是使用boost.thread,但它仍然需要boost.date_time、boost.array、boost.utility、boost.bind、boost.shared_ptr...
没有任何版本的 Asio 可以在没有任何 Boost 依赖的情况下工作。
【讨论】:
最新的 ASIO 版本可以在没有 Boost 的情况下在独立模式下工作。这种模式可能是由库的 C++11 支持启用的,因为它现在可以使用标准线程、期货等,而不是它们的 Boost 实现。您可以像下面这样简单地包含 ASIO 并享受:
#define ASIO_STANDALONE
#include <asio.hpp>
【讨论】: