Subject: [Boost-bugs] [Boost C++ Libraries] #6021: Cannot compile code to compute convex hull of multipoint geometry
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-10-13 15:09:35
#6021: Cannot compile code to compute convex hull of multipoint geometry
------------------------------------------------+---------------------------
Reporter: Crispin Cooper <cooperch@â¦> | Owner: barendgehrels
Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
Version: Boost 1.47.0 | Severity: Showstopper
Keywords: convex hull multipoint |
------------------------------------------------+---------------------------
Hello once again...
Attached is a program to compute the convex hull of a multipoint geometry.
Compilation fails (msvc).
Compilation works if either a polygon is used instead of a multipoint, or
the convex_hull function is not called.
Compiler output pasted below.
Many thanks for developing this useful library, I hope this is me failing
to use it correctly rather than problems your end!
1>------ Build started: Project: boost_geom_test, Configuration: Debug
Win32 ------
1>Compiling...
1>boost_geom_test_no_multipoint.cpp
1>d:\boost\boost_1_47_0\boost\geometry\algorithms\detail\for_each_range.hpp(115)
: error C2039: 'apply' : is not a member of
'boost::geometry::dispatch::for_each_range<Tag,Geometry,Actor,IsConst>'
1> with
1> [
1> Tag=boost::geometry::multi_point_tag,
1>
Geometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1>
Actor=boost::geometry::strategy::convex_hull::detail::get_extremes<range_type,range_iterator,boost::geometry::less<boost::geometry::model::d2::point_xy<float>,0>,boost::geometry::greater<boost::geometry::model::d2::point_xy<float>,0>>,
1> IsConst=true
1> ]
1>
d:\boost\boost_1_47_0\boost\geometry\strategies\agnostic\hull_graham_andrew.hpp(294)
: see reference to function template instantiation 'void
boost::geometry::detail::for_each_range<InputGeometry,boost::geometry::strategy::convex_hull::detail::get_extremes<InputRange,RangeIterator,StrategyLess,StrategyGreater>>(const
Geometry &,Actor &)' being compiled
1> with
1> [
1>
InputGeometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1> InputRange=range_type,
1> RangeIterator=range_iterator,
1>
StrategyLess=boost::geometry::less<boost::geometry::model::d2::point_xy<float>,0>,
1>
StrategyGreater=boost::geometry::greater<boost::geometry::model::d2::point_xy<float>,0>,
1>
Geometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1>
Actor=boost::geometry::strategy::convex_hull::detail::get_extremes<range_type,range_iterator,boost::geometry::less<boost::geometry::model::d2::point_xy<float>,0>,boost::geometry::greater<boost::geometry::model::d2::point_xy<float>,0>>
1> ]
1>
d:\boost\boost_1_47_0\boost\geometry\strategies\agnostic\hull_graham_andrew.hpp(274)
: while compiling class template member function 'void
boost::geometry::strategy::convex_hull::graham_andrew<InputGeometry,OutputPoint>::apply(const
InputGeometry
&,boost::geometry::strategy::convex_hull::graham_andrew<InputGeometry,OutputPoint>::partitions
&) const'
1> with
1> [
1>
InputGeometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1> OutputPoint=point_type
1> ]
1>
d:\boost\boost_1_47_0\boost\geometry\algorithms\convex_hull.hpp(179) : see
reference to class template instantiation
'boost::geometry::strategy::convex_hull::graham_andrew<InputGeometry,OutputPoint>'
being compiled
1> with
1> [
1>
InputGeometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1> OutputPoint=point_type
1> ]
1> d:\test\boost_geom_test\boost_geom_test_no_multipoint.cpp(20) :
see reference to function template instantiation 'void
boost::geometry::convex_hull<boost::geometry::model::multi_point<Point>,boost::geometry::model::polygon<Point>>(const
Geometry1 &,Geometry2 &)' being compiled
1> with
1> [
1> Point=boost::geometry::model::d2::point_xy<float>,
1>
Geometry1=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1>
Geometry2=boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<float>>
1> ]
1>d:\boost\boost_1_47_0\boost\geometry\algorithms\detail\for_each_range.hpp(115)
: error C3861: 'apply': identifier not found
1>d:\boost\boost_1_47_0\boost\geometry\algorithms\detail\for_each_range.hpp(115)
: error C2039: 'apply' : is not a member of
'boost::geometry::dispatch::for_each_range<Tag,Geometry,Actor,IsConst>'
1> with
1> [
1> Tag=boost::geometry::multi_point_tag,
1>
Geometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1>
Actor=boost::geometry::strategy::convex_hull::detail::assign_range<range_type,range_iterator,std::vector<boost::geometry::model::d2::point_xy<float>,std::allocator<boost::geometry::model::d2::point_xy<float>>>,boost::geometry::strategy::side::side_by_triangle<void>>,
1> IsConst=true
1> ]
1>
d:\boost\boost_1_47_0\boost\geometry\strategies\agnostic\hull_graham_andrew.hpp(307)
: see reference to function template instantiation 'void
boost::geometry::detail::for_each_range<InputGeometry,boost::geometry::strategy::convex_hull::detail::assign_range<InputRange,RangeIterator,Container,SideStrategy>>(const
Geometry &,Actor &)' being compiled
1> with
1> [
1>
InputGeometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1> InputRange=range_type,
1> RangeIterator=range_iterator,
1>
Container=std::vector<boost::geometry::model::d2::point_xy<float>,std::allocator<boost::geometry::model::d2::point_xy<float>>>,
1>
SideStrategy=boost::geometry::strategy::side::side_by_triangle<void>,
1>
Geometry=boost::geometry::model::multi_point<boost::geometry::model::d2::point_xy<float>>,
1>
Actor=boost::geometry::strategy::convex_hull::detail::assign_range<range_type,range_iterator,std::vector<boost::geometry::model::d2::point_xy<float>,std::allocator<boost::geometry::model::d2::point_xy<float>>>,boost::geometry::strategy::side::side_by_triangle<void>>
1> ]
1>d:\boost\boost_1_47_0\boost\geometry\algorithms\detail\for_each_range.hpp(115)
: error C3861: 'apply': identifier not found
1>Build log was saved at
"file://d:\test\boost_geom_test\Debug\BuildLog.htm"
1>boost_geom_test - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/6021> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC