我有一个名为WorldPoint的结构和一个名为diagonalDistance的函数。我想在向量中找到最接近原点的点。
代码非常明显:
WorldPoint closestToOrigin(std::vector<WorldPoint> vertices)
{
WorldPoint point(0, 0);
boost::function<double(WorldPoint)> distToOrigin = boost::bind(&diagonalDistance<WorldPoint>, origin, _1);
boost::function<bool(WorldPoint, WorldPoint)> compare = boost::bind(&std::min<double>, distToOrigin(_1), distToOrigin(_2)); // <- Won't compile
startPoint = *std::min_element(vertices.begin(), vertices.end(), compare);
}
有没有办法使用另一个boost :: function处理boost :: function的参数?
实现我想做的最简单的方法是什么?我应该只定义一个内部具有比较功能的结构吗?