线程池编译错误
Thread Pool compile error
当我尝试用一个任务编译我的线程池时,我得到以下错误:
下面是线程池声明:error: 'void ThreadPool::enqueue(F) [with F =CConnection::handle()::]',使用本地类型声明'CConnection::handle()::',被使用但从未定义(-fpermissive)
class ThreadPool {
public:
ThreadPool(size_t);
template<class F>
void enqueue(F f);
~ThreadPool();
private:
// need to keep track of threads so we can join them
std::vector< std::unique_ptr<boost::thread> > workers;
// the io_service we are wrapping
boost::asio::io_service service;
boost::asio::io_service::work working;
friend class Worker;
};
下面是函数,要用线程池来测试:
void CConnection::handle()
{
ThreadPool pool(4);
pool.enqueue([1]
{
std::cout << "hello " << 1 << std::endl;
boost::this_thread::sleep(
boost::posix_time::milliseconds(1000)
);
std::cout << "world " << 1 << std::endl;
});
char * databuffer;
databuffer = new char[16];
for(int i = 0;i<16;i++)
{
databuffer[i] = 0x00;
}
databuffer[0] = 16;
databuffer[4] = 1;
databuffer[8] = 1;
databuffer[12] = 1;
asynchronousSend(databuffer, 16);
}
这里是队列定义:
template<class F>
void ThreadPool::enqueue(F f)
{
service.post(f);
}
有人能发现我做错了什么吗?
是否在ThreadPool.h头中定义队列?这对于模板方法
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译