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
Bitte Boost Fehlermeldungen direkt * in * die Frage * Klartext setzen *. –
Ich hätte das getan, aber die Ausgabe war zu groß, um von StackOverflow –
erlaubt zu werden Ich wette, Sie könnten einige irrelevante Teile ausgeschnitten haben, die wichtigsten Bits gezeigt und dann einfach mit dem Rest verbunden :) –