线程池传入要并行的函数,总显示没有与参数列表匹配的函数模板

问题遇到的现象和发生背景

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