2016-07-21 16 views
0

Ich benutze Boost 1,61boost rtree code wird nicht kompiliert --- warum?

mit VS2015 kompilieren

Der folgende Code nicht kompiliert werden. Es sollte tun --- Ich denke, es ist die Verwendung des Adapters BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET, die Dinge zu stören.

Irgendeine Idee, warum das nicht funktioniert oder wie ich es beheben könnte?

#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; 
} 

Hier ist die Zusammenfassung von VC-Compiler:

Severity Code Beschreibung Projektdatei Zeilenunterdrückungszustand Fehler C2672 ‚boost :: Geometrie :: Strategie :: Schnitt :: relate_cartesian_segments >>, boost: : geometry :: policies :: relate :: segments_direction>, CalculationType> :: apply ': Keine übereinstimmende überladene Funktion gefunden scratch1 c: \ Benutzer \ simon \ downloads \ boost_1_61_0 \ boost_1_61_0 \ boost \ geometry \ algorithmen \ detail \ overlay \ get_turn_info_helpers .hpp 230 Fehler C2782 'boost :: tupel :: tuple>, boost :: geometrie :: policies :: relate :: segments_direction :: return_type, boost :: tupel :: null_type, boost :: tupel :: null_type, boo st :: tuples :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ> boost: : geometry :: strategie :: intersection :: relate_cartesian_segments >>, boost :: geometrie :: policies :: relate :: segments_direction>, CalculationType> :: apply (const Segment1 &, const Segment2 &, const RobustPolicy &, const RobustPoint & , const RobustPoint &, const RobustPoint &, const RobustPoint &) ': template Parameter' RobustPoint 'ist mehrdeutig scratch1 c: \ Benutzer \ simon \ downloads \ boost_1_61_0 \ boost_1_61_0 \ boost \ geometry \ algorithmen \ detail \ overlay \ get_turn_info_helpers.hpp 230 Fehler C2784 'boost :: Tupel :: Tupel>, Boost :: Geometrie :: Richtlinien :: relate :: segments_direction :: return_type, Boost :: Tupel :: null_type, boost: : tuples :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_type> boost :: geometry :: strategie :: intersection :: relate_cartesian_segments >>, boost :: geometrie :: policies :: relate :: segments_direction>, Berechnungstyp> :: apply (const Segment1 &, const Segment2 &, const RobustPolicy &, const RobustPoint &, const RobustPoint &, const RobustPoint &, const RobustPoint &) ': konnte nicht Template-Argument für ableiten 'const RobustPoint &' von 'const boost :: Geometrie :: Modell :: Punkt>' scratch1 c: \ users \ simon \ downloads \ boost_1_61_0 \ boost_1_61_0 \ boost \ geometry \ algorithmen \ detail \ overlay \ get_turn_info_helpers.hpp 230 Fehler C2780 'boost :: Tupel :: Tupel>, Boost :: Geometrie :: Richtlinien :: Relate :: Segments_Direction :: Return-Typ, Boost :: Tupel :: Null-Typ, Boost :: Tupel :: Null-Typ, Boost :: Tupel :: Null-Typ, Boost :: tuples :: null_type, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ, boost :: tupel :: null_typ> boost :: geometrie :: strategie :: intersection :: relate_cartesian_segments >>, boost :: geometry :: policies :: relate :: segments_direction>, CalculationType> :: apply (const Segment1 &, const Segment2 &, const RobustPolicy &) ': erwartet 3 Argumente - 7 zur Verfügung gestellt scratch1 c: \ users \ simon \ downloads \ boost_1_61_0 \ boost_1_61_0 \ boost \ geometrie \ algorithmen \ detail \ overlay \ get_turn_info_helpers.HPP 230

Und hier ist die ausführlichere compiler output

+1

Bitte Boost Fehlermeldungen direkt * in * die Frage * Klartext setzen *. –

+1

Ich hätte das getan, aber die Ausgabe war zu groß, um von StackOverflow –

+0

erlaubt zu werden Ich wette, Sie könnten einige irrelevante Teile ausgeschnitten haben, die wichtigsten Bits gezeigt und dann einfach mit dem Rest verbunden :) –

Antwort