message: switch to std::tuple in line helper functions
diff: @@ -208,12 +208,12 @@ inline Point2d get_normal_at_s(Line l, float s) {
  }
  -inline boost::tuple<Point2d, double, uint> get_nearest_point_and_s(Line l, const Point2d &p) { // get_nearest_point
  +inline std::tuple<Point2d, double, uint> get_nearest_point_and_s(Line l, const Point2d &p) { // get_nearest_point
  // edge cases: empty or one-point line
  if (l.obj_.empty()) {
  - return boost::make_tuple(Point2d(0, 0), 0.0, 0);
  + return std::make_tuple(Point2d(0, 0), 0.0, 0);
  } else if (l.obj_.size() == 1) {
  - return boost::make_tuple(l.obj_.at(0), 0.0, 0);
  + return std::make_tuple(l.obj_.at(0), 0.0, 0);
  }
  // nominal case:
  @@ -287,16 +287,16 @@ inline boost::tuple<Point2d, double, uint> get_nearest_point_and_s(Line l, const
  // const double dist_boost = bg::distance(l.obj_, p);
  // return
  - return boost::make_tuple(retval, s, min_segment_idx);
  + return std::make_tuple(retval, s, min_segment_idx);
  }
  inline Point2d get_nearest_point(Line l, const Point2d &p) {
  - return boost::get<0>(get_nearest_point_and_s(l, p));
  + return std::get<0>(get_nearest_point_and_s(l, p));
  }
  inline float get_nearest_s(Line l, const Point2d &p) {
  - return boost::get<1>(get_nearest_point_and_s(l, p));
  + return std::get<1>(get_nearest_point_and_s(l, p));
  }
  inline uint FindNearestIdx(Line l, const Point2d &p) {
  - return boost::get<2>(get_nearest_point_and_s(l, p));
  + return std::get<2>(get_nearest_point_and_s(l, p));
  }
  //! Point - Line collision checker using boost::intersection
  inline bool Collide(const Line &l, const LinePoint &p) {
  