Boost logo

Geometry :

Subject: [ggl] Problem intersecting linestring & polygon in Xcode 3.2.2
From: Scott K Warren (scott)
Date: 2010-04-09 18:48:25


> Could you try to build this example again? I'd expect it compiles without
> any problem. I compile it successfully using GCC 4.4.1 in Linux:

Mateusz,

I'm afraid not. I checked out the current (61170) version of the 'example' directory and built the example from the command line as you suggested, but I got exactly the same "apply is not a member of get_turns" error that I'm seeing in Xcode. I've attached the command line output here.

Both in and out of Xcode, the version of gcc used is 4.2.1. I see that this is quite a bit older than the 4.4.1 you tried this with. Do you think the compile error is a problem in gcc 4.2.1?

I don't think it is practical to use a later version of gcc in Xcode, and for me it would not be attractive to build GGL from the command line. So I'm interested in a fix or workaround for this problem using gcc 4.2.1. I think all Mac developers will share this interest. If it's not a priority for the GGL developers I'm happy to take a shot myself, but I could really use some hints -- right now I'm stumped.

Thanks,

skw

-------------- next part --------------
$ bjam 05_b_overlay_linestring_polygon_example
warning: No toolsets are configured.
warning: Configuring default toolset "gcc".
warning: If the default is wrong, your build may not work correctly.
warning: Use the "toolset=xxxxx" option to override our guess.
warning: For more configuration options, please consult
warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html
...patience...
...found 1065 targets...
...updating 5 targets...
common.mkdir bin
common.mkdir bin/gcc-4.2.1
common.mkdir bin/gcc-4.2.1/debug
gcc.compile.c++ bin/gcc-4.2.1/debug/05_b_overlay_linestring_polygon_example.o
../../../boost/geometry/algorithms/overlay/get_turns.hpp: In function ‘void boost::geometry::get_turns(const Geometry1&, const Geometry2&, Turns&, InterruptPolicy&) [with AssignPolicy = boost::geometry::detail::overlay::assign_null_policy, Geometry1 = boost::geometry::linestring_2d, Geometry2 = boost::geometry::polygon_2d, Turns = std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >, InterruptPolicy = boost::geometry::detail::get_turns::no_interrupt_policy]’:
05_b_overlay_linestring_polygon_example.cpp:58: instantiated from here
../../../boost/geometry/algorithms/overlay/get_turns.hpp:950: error: ‘apply’ is not a member of ‘boost::geometry::dispatch::get_turns<boost::geometry::linestring_tag, boost::geometry::polygon_tag, false, false, boost::geometry::linestring<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, std::vector, std::allocator>, boost::geometry::polygon<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, std::vector, std::vector, true, std::allocator, std::allocator>, std::vector<boost::geometry::detail::overlay::turn_info<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >, boost::geometry::strategy::in
tersection::relate_cartesian_segments<boost::geometry::policies::relate::segments_tupled<boost::geometry::policies::relate::segments_intersection_points<boost::geometry::segment<const boost::geometry::point_xy<double, boost::geometry::cs::cartesian> >, boost::geometry::segment<const boost::geometry::point_xy<double, boost::geometry::cs::cartesian> >, boost::geometry::segment_intersection_points<boost::geometry::detail::overlay::turn_info<boost::geometry::point_xy<double, boost::geometry::cs::cartesian>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > >, void>, boost::geometry::policies::relate::segments_direction<boost::geometry::segment<const boost::geometry::point_xy<double, boost::geometry::cs::cartesian> >, boost::geometry::segment<const boost::geometry::point_xy<double, boost::geometry::cs::cartesian> >, void>, void>, void>, boost::geometry::detail::overlay::assign_null_policy, boost::geometry::detail::get_turns::no_interrupt_policy
>’

    "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -pedantic -g -fPIC -pedantic -pedantic -Wall -Wstrict-aliasing -fstrict-aliasing -Wno-long-long -I".." -I"../../.." -I"../../../boost" -c -o "bin/gcc-4.2.1/debug/05_b_overlay_linestring_polygon_example.o" "05_b_overlay_linestring_polygon_example.cpp"

...failed gcc.compile.c++ bin/gcc-4.2.1/debug/05_b_overlay_linestring_polygon_example.o...
...skipped <pbin/gcc-4.2.1/debug>05_b_overlay_linestring_polygon_example for lack of <pbin/gcc-4.2.1/debug>05_b_overlay_linestring_polygon_example.o...
...failed updating 1 target...
...skipped 1 target...
...updated 3 targets...
$
-------------- next part --------------


Geometry list run by mateusz at loskot.net