我有以下类定义,但出于某种原因我无法在类定义本身内部定义线程池。它说: syntax error: identifier 'numberofpoolthreads' 我试着直接在类中定义它,但它给了我同样的语法错误,有人知道这是为什么吗?
#include "stdafx.h"
#include <boost/threadpool.hpp>
#include <boost/threadpool/pool.hpp>
#include <boost/threadpool/detail/pool_core.hpp>
typedef boost::threadpool::fifo_pool resolverpool;
class ResolverThreadPoolManager
{
public:
ResolverThreadPoolManager::ResolverThreadPoolManager(int numberofpoolthreads);
ResolverThreadPoolManager::~ResolverThreadPoolManager();
resolverpool p(numberofpoolthreads);
private:
int numberofpoolthreads;
};
最佳答案
此行:resolverpool p(numberofpoolthreads);
在类定义中无效。您需要一个成员变量,然后在构造函数中对其进行初始化。例如:
class ResolverThreadPoolManager
{
public:
explicit ResolverThreadPoolManager(int numberofpoolthreads);
...
private:
const resolverpool p;
};
ResolverThreadPoolManager::ResolverThreadPoolManager(int numberofpoolthreads)
: p(numberofpoolthreads)
{}
关于c++ - 在类定义中定义线程池的无法解释的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958853/