从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。