将std :: min_element与函数结果一起使用。嵌套的boost :: bind

时间:2016-05-12 17:47:05

标签: c++ function boost bind

我有一个名为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的参数?

实现我想做的最简单的方法是什么?我应该只定义一个内部具有比较功能的结构吗?

0 个答案:

没有答案