问题遇到的现象和发生背景
从github上找了一个线程池threadpool的模板,测试简单例子没有问题,但是放到我项目里要用的地方,传入要并行的函数时,就会显示函数的参数错误。
问题相关代码,请勿粘贴截图
以下是线程池的使用
ThreadPool pool(4);
std::vector<std::future<void> > results;
for (auto face : candidate_passive_faces) {
results.emplace_back(pool.enqueue(GenerateKeyPointBasis,std::ref(face_pair_keypoints),std::ref(edge_keypoints),std::ref(face_splitting_edges),std::ref(vv_map),edge,face,std::ref(tolerance)));
}
以下是GenerateKeyPointBasis的定义,这是一个静态成员函数:
static void GenerateKeyPointBasis(FacePairKeyPointMap &face_pair_keypoints, EdgeKeyPointMap &edge_keypoints, FaceSplittingEdgesMap &face_splitting_edges, DuplicatedVertexMap &vv_map,
EdgePtr edge, FacePtr face, const ToleranceType &tolerance);
运行结果及报错内容
没有与参数列表匹配的函数模板“ThreadPool::enqueue”实例
我的解答思路和尝试过的方法
我想要达到的结果
不知道有没有人帮忙解答, 可以VX。