basic_thread_pool 不是 boost::executors 的成员

basic_thread_pool is not a member of boost::executors

本文关键字:executors 成员 不是 thread pool basic boost      更新时间:2023-10-16

我正在将 boost 的版本从 boost 1.71 更改为 1.63,并且在针对项目和解决方案运行时,我在多个地方看到以下错误。以下是我如何使用它:

boost::executors::basic_thread_pool threadPool( workingThreadNum );

我看到的错误:

C2039 'basic_thread_pool':不是上面行的'boost::executors'的成员。

谁能帮我解决这个问题?

谢谢

这些功能是实验性的,需要编译器定义才能启用其条件编译:

#define BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION 1
#define BOOST_THREAD_PROVIDES_EXECUTORS
#define BOOST_THREAD_USES_MOVE
#include <boost/thread/executors/basic_thread_pool.hpp>

当然,这些

很重要
  • 在包含第一个相关标头之前定义
  • 对于参与链接的任何对象定义完全相同

因此,我强烈建议在构建配置级别使用类似的东西来定义它(取决于您的构建工具(:

CPPFLAGS+=-DBOOST_THREAD_PROVIDES_FUTURE_CONTINUATION=1
CPPFLAGS+=-DBOOST_THREAD_PROVIDES_EXECUTORS=1
CPPFLAGS+=-DBOOST_THREAD_USES_MOVE=1