i using boost 1.61
compiling vs2015
the following code won't compile. should --- think use of adapter boost_geometry_register_point_2d_get_set upsetting things.
any idea why doesn't work or how fix it?
#include <boost/geometry/geometry.hpp> #include <boost/geometry/index/rtree.hpp> #include <boost/geometry/geometries/polygon.hpp> #include <boost/geometry/geometries/point.hpp> #include <boost/geometry/io/wkt/wkt.hpp> #include <vector> #include <boost/geometry/geometries/register/point.hpp> class wxpoint { public: wxpoint(double x, double y) : m_x(x), m_y(y) { } wxpoint() {} double getx() const { return m_x; } double gety() const { return m_y; } void setx(double in) { m_x = in; } void sety(double in) { m_y = in; } private: double m_x; double m_y; }; boost_geometry_register_point_2d_get_set( wxpoint, double, boost::geometry::cs::geographic<boost::geometry::degree>, wxpoint::getx, wxpoint::gety, wxpoint::setx, wxpoint::sety) typedef std::pair<wxpoint, unsigned> value; int main() { boost::geometry::index::rtree< value, boost::geometry::index::quadratic<16> > rtree; wxpoint p(4, 1); rtree.insert(std::make_pair(p, 1)); std::vector<value> result_s; typedef boost::geometry::model::polygon<wxpoint> polygon_type; polygon_type poly; boost::geometry::read_wkt( "polygon((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 3,5.3 2.6,5.4 1.2,4.9 0.8,2.9 0.7,2 1.3)" "(4.0 2.0, 4.2 1.4, 4.8 1.9, 4.4 2.2, 4.0 2.0))", poly); rtree.query(boost::geometry::index::within(poly), std::back_inserter(result_s)); return 0; }
here summary information vc compiler:
severity code description project file line suppression state error c2672 'boost::geometry::strategy::intersection::relate_cartesian_segments>>,boost::geometry::policies::relate::segments_direction>,calculationtype>::apply': no matching overloaded function found scratch1 c:\users\simon\downloads\boost_1_61_0\boost_1_61_0\boost\geometry\algorithms\detail\overlay\get_turn_info_helpers.hpp 230 error c2782 'boost::tuples::tuple>,boost::geometry::policies::relate::segments_direction::return_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> boost::geometry::strategy::intersection::relate_cartesian_segments>>,boost::geometry::policies::relate::segments_direction>,calculationtype>::apply(const segment1 &,const segment2 &,const robustpolicy &,const robustpoint &,const robustpoint &,const robustpoint &,const robustpoint &)': template parameter 'robustpoint' ambiguous scratch1 c:\users\simon\downloads\boost_1_61_0\boost_1_61_0\boost\geometry\algorithms\detail\overlay\get_turn_info_helpers.hpp 230 error c2784 'boost::tuples::tuple>,boost::geometry::policies::relate::segments_direction::return_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> boost::geometry::strategy::intersection::relate_cartesian_segments>>,boost::geometry::policies::relate::segments_direction>,calculationtype>::apply(const segment1 &,const segment2 &,const robustpolicy &,const robustpoint &,const robustpoint &,const robustpoint &,const robustpoint &)': not deduce template argument 'const robustpoint &' 'const boost::geometry::model::point>' scratch1 c:\users\simon\downloads\boost_1_61_0\boost_1_61_0\boost\geometry\algorithms\detail\overlay\get_turn_info_helpers.hpp 230 error c2780 'boost::tuples::tuple>,boost::geometry::policies::relate::segments_direction::return_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> boost::geometry::strategy::intersection::relate_cartesian_segments>>,boost::geometry::policies::relate::segments_direction>,calculationtype>::apply(const segment1 &,const segment2 &,const robustpolicy &)': expects 3 arguments - 7 provided scratch1 c:\users\simon\downloads\boost_1_61_0\boost_1_61_0\boost\geometry\algorithms\detail\overlay\get_turn_info_helpers.hpp 230
and here more detailed compiler output
this caused bug, more info here: https://svn.boost.org/trac/boost/ticket/12189 , here: https://svn.boost.org/trac/boost/ticket/12342
there several possible workarounds:
- pass polygon using bg::model::point
- pass box instead of polygon
- apply fix mentioned on bug tracker page (above) local copy of boost 1.61
- upgrade boost 1.62
Comments
Post a Comment