LineString ret;// LineString raw is being filledHello,I am trying to port existing and working code from 1.54 to above and ever since 1.55 there's a compile error on both gcc and VC9 here:
typedef boost::geometry::model::point<double, 3, boost::geometry::cs::cartesian> Point;
typedef boost::geometry::model::box<Point> BoundingBox;
typedef boost::geometry::model::segment<Point> Segment;
typedef boost::geometry::model::linestring<Point> LineString;
typedef boost::geometry::strategy::distance::projected_point<Point> PointSegmentDistanceStrategy;
typedef boost::geometry::strategy::simplify::douglas_peucker<Point, PointSegmentDistanceStrategy> SimplificationStrategy;
SimplificationStrategy strat;
boost::geometry::simplify<LineString, double, SimplificationStrategy>(raw, ret, 20, strat);The error appears to be different in 1.57.GCC says:
In file included from /home/sm/devel/boost_1_57_0/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp:31:0,
from /home/sm/devel/boost_1_57_0/boost/geometry/algorithms/buffer.hpp:32,
from /home/sm/devel/boost_1_57_0/boost/geometry/geometry.hpp:48,
from /home/sm/devel/boost_1_57_0/boost/geometry.hpp:17,
from /home/sm/devel/ogre/DouglasPeucker.hpp:4,
from /home/sm/devel/ogre/DouglasPeucker.cpp:1:
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp: In instantiation of 'static void boost::geometry::detail::simplify::simplify_range_insert::apply(const Range&, OutputIterator, const Distance&, const Strategy&) [with Range = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >; OutputIterator = std::back_insert_iterator<boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >; Distance = double]':
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:112:17: required from 'static void boost::geometry::detail::simplify::simplify_range<Minimum>::apply(const Range&, Range&, const Distance&, const Strategy&) [with Range = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; Strategy = boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >; Distance = double; long unsigned int Minimum = 2ul]'
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:309:82: required from 'static void boost::geometry::resolve_strategy::simplify::apply(const Geometry&, Geometry&, const Distance&, const Strategy&) [with Geometry = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; Distance = double; Strategy = boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >]'
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:395:80: required from 'static void boost::geometry::resolve_variant::simplify<Geometry>::apply(const Geometry&, Geometry&, const Distance&, const Strategy&) [with Distance = double; Strategy = boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >; Geometry = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >]'
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:463:85: required from 'void boost::geometry::simplify(const Geometry&, Geometry&, const Distance&, const Strategy&) [with Geometry = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; Distance = double; Strategy = boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >]'
/home/sm/devel/ogre/DouglasPeucker.cpp:113:91: required from here
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:61:13: error: no matching function for call to 'boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >::apply(const boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >&, std::back_insert_iterator<boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >&, const double&) const'
strategy.apply(range, out, max_distance);
^
/home/sm/devel/boost_1_57_0/boost/geometry/algorithms/simplify.hpp:61:13: note: candidate is:
In file included from /home/sm/devel/boost_1_57_0/boost/geometry/strategies/strategies.hpp:72:0,
from /home/sm/devel/boost_1_57_0/boost/geometry/geometry.hpp:43,
from /home/sm/devel/boost_1_57_0/boost/geometry.hpp:17,
from /home/sm/devel/ogre/DouglasPeucker.hpp:4,
from /home/sm/devel/ogre/DouglasPeucker.cpp:1:
/home/sm/devel/boost_1_57_0/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp:275:34: note: static OutputIterator boost::geometry::strategy::simplify::douglas_peucker<Point, PointDistanceStrategy>::apply(const Range&, OutputIterator, boost::geometry::strategy::simplify::douglas_peucker<Point, PointDistanceStrategy>::distance_type) [with Range = boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; OutputIterator = std::back_insert_iterator<boost::geometry::model::linestring<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >; Point = boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>; PointDistanceStrategy = boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> >; boost::geometry::strategy::simplify::douglas_peucker<Point, PointDistanceStrategy>::distance_type = boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>]
static inline OutputIterator apply(Range const& range,
^
/home/sm/devel/boost_1_57_0/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp:275:34: note: no known conversion for argument 3 from 'const double' to 'boost::geometry::strategy::simplify::douglas_peucker<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>, boost::geometry::strategy::distance::projected_point<boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian> > >::distance_type {aka boost::geometry::model::point<double, 3ul, boost::geometry::cs::cartesian>}'I didn't notice any change in interface that would explain this so I suppose it could be a bug in geometry.Any ideas?
Cheers,
Stephan