[Boost-bugs] [Boost C++ Libraries] #6021: Cannot compile code to compute convex hull of multipoint geometry

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