C ++“错误:无匹配功能”

时间:2018-08-29 02:52:34

标签: c++ ros

我看到了这个问题:

   src/planning.cpp:892:95: error: no matching function for call to ‘std::vector<std::pair<pcl::PointXYZ, cv::Point_<float> > >::vector(int, std::pair<pcl::PointXYZ, int>)’
     std::vector<std::pair<PointT,cv::Point2f> > _candidate_points(3,make_pair(PointT(0,0,0),0));

有人知道如何解决吗?

1 个答案:

答案 0 :(得分:2)

作为构造函数的第二个参数提供的值的类型与向量中存储的类型不匹配。容器中存储的类型为std::pair<pcl::PointXYZ, cv::Point_<float>,而您提供的值的类型为std::pair<pcl::PointXYZ, int>

您可能需要将最后一个0显式转换为cv::Point_<float>,因为隐式转换不适用于模板参数。例如,即使可以将单个int传递给期望双精度的函数,也不能将一对int传递给期望双精度的函数。