Modify

Opened 5 years ago

Closed 5 years ago

#7154 closed Bugs (fixed)

[polygon] Build fails with gcc-4.7

Reported by: denis.arnaud Owned by: ljsimons
Milestone: To Be Determined Component: polygon
Version: Boost 1.50.0 Severity: Problem
Keywords: Cc:

Description

Reference: http://bugzilla.redhat.com/show_bug.cgi?id=784654

Building the attached gtl-polygon-set.cc (example program from upstream website: http://www.boost.org/doc/libs/1_48_0/libs/polygon/doc/gtl_polygon_set_usage.htm) with boost-devel-1.48.0-8.fc17.x86_64 and gcc-c++-4.7.0-0.9.fc17.x86_64 fails with: g++ -Wall -O2 -g gtl-polygon-set.cc -o gtl-polygon-set In file included from /usr/include/boost/polygon/polygon.hpp:64:0,

from gtl-polygon-set.cc:8:

/usr/include/boost/polygon/polygon_90_set_data.hpp: In instantiation of ‘void boost::polygon::polygon_90_set_data<T>::sort() const [with T = int]’: /usr/include/boost/polygon/polygon_45_set_data.hpp:1550:7: required from ‘void boost::polygon::polygon_45_set_data<Unit>::applyAdaptiveBoolean_(boost::polygon::polygon_45_set_data<Unit>&, const boost::polygon::polygon_45_set_data<Unit>&) const [with int op = 0; Unit = int]’ /usr/include/boost/polygon/detail/polygon_set_view.hpp:108:9: required from ‘void boost::polygon::execute_boolean_op(value_type&, const geometry_type_1&, const geometry_type_2&) [with value_type = boost::polygon::polygon_set_data<int>; geometry_type_1 = std::vector<boost::polygon::polygon_data<int> >; geometry_type_2 = boost::polygon::rectangle_data<int>; int op_type = 0]’ /usr/include/boost/polygon/detail/polygon_set_view.hpp:197:5: required from ‘geometry_type_1& boost::polygon::self_assignment_boolean_op(geometry_type_1&, const geometry_type_2&) [with geometry_type_1 = std::vector<boost::polygon::polygon_data<int> >; geometry_type_2 = boost::polygon::rectangle_data<int>; int op_type = 0]’ /usr/include/boost/polygon/polygon_set_concept.hpp:388:90: required from ‘typename boost::enable_if<typename boost::polygon::gtl_and_4<boost::polygon::operators::yes_ps_ope, boost::polygon::gtl_yes, typename boost::polygon::is_mutable_polygon_set_type<polygon_set_type_1>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, geometry_type_1>::type& boost::polygon::operators::operator+=(geometry_type_1&, const geometry_type_2&) [with geometry_type_1 = std::vector<boost::polygon::polygon_data<int> >; geometry_type_2 = boost::polygon::rectangle_data<int>; typename boost::enable_if<typename boost::polygon::gtl_and_4<boost::polygon::operators::yes_ps_ope, boost::polygon::gtl_yes, typename boost::polygon::is_mutable_polygon_set_type<polygon_set_type_1>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, geometry_type_1>::type = std::vector<boost::polygon::polygon_data<int> >]’ gtl-polygon-set.cc:20:43: required from here /usr/include/boost/polygon/polygon_90_set_data.hpp:299:9: error: ‘gtlsort’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] In file included from /usr/include/boost/polygon/detail/scan_arbitrary.hpp:13:0,

from /usr/include/boost/polygon/polygon_set_data.hpp:929, from /usr/include/boost/polygon/polygon.hpp:82, from gtl-polygon-set.cc:8:

/usr/include/boost/polygon/detail/polygon_sort_adaptor.hpp:58:10: note: ‘template<class iter_type, class pred_type> void boost::polygon::gtlsort(iter_type, iter_type, const pred_type&)’ declared here, later in the translation unit make: * [gtl-polygon-set] Error 1

This can be fixed by patching boost/polygon.hpp to make the gtlsort() declaration appear earlier: --- /usr/include/boost/polygon/polygon.hpp.orig 2012-01-26 01:05:15.934998805 +0800 +++ /usr/include/boost/polygon/polygon.hpp 2012-01-26 01:13:10.547000000 +0800 @@ -24,6 +24,8 @@

#include "transform.hpp" #include "detail/transform_detail.hpp"

+#include "detail/polygon_sort_adaptor.hpp" +

interval #include "interval_data.hpp" #include "interval_traits.hpp"

Attachments (2)

gtl-polygon-set.cc (1.7 KB) - added by denis.arnaud 5 years ago.
Source code to reproduce the compilation error
boost-polygon-declare-gtlsort-earlier.patch (369 bytes) - added by denis.arnaud 5 years ago.
Patch to fix the compilation issue

Download all attachments as: .zip

Change History (4)

Changed 5 years ago by denis.arnaud

Source code to reproduce the compilation error

Changed 5 years ago by denis.arnaud

Patch to fix the compilation issue

comment:1 Changed 5 years ago by sydorchuk.andriy@…

Will be fixed in Boost 1.52.

Andrii Sydorchuk

comment:2 Changed 5 years ago by ljsimons

  • Resolution set to fixed
  • Status changed from new to closed

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain ljsimons.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.