我正在使用“https://github.com/alugowski/task-thread-pool/”创建线程池并使用提交函数调用任务但出现错误
int Model::sum(int a, int b)
{
return 1;
}
void Model::SubscribeMLStatusCallBackFn(const MLStatusReceiveCallbackFn& statusCallback)
{
m_MLStatusCallback = statusCallback;
task_thread_pool::task_thread_pool pool;
std::future<int> sum_future = pool.submit(&sum, 1, 2);
sum_future.get();
}
错误:没有函数模板实例与参数列表匹配,参数类型为:(std::string, CommandLineArgumentTypes)
但是同样的工作
std::future<int> sum_future = pool.submit([] { return 1; });
有人可以告诉我使用 &sum 函数调用提交时犯了什么错误吗
您可以尝试调用 sum 方法,同时传递函数和类的实例,并进一步将成员函数绑定到对象。
std::future<int> sum_future = pool.submit(std::bind(&Model::sum, this, 1, 2));