[Boost-bugs] [Boost C++ Libraries] #6051: iT::value_type should use iterator_traits (needed for SunCC/stlport4 compatibility)

Subject: [Boost-bugs] [Boost C++ Libraries] #6051: iT::value_type should use iterator_traits (needed for SunCC/stlport4 compatibility)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-10-24 18:45:23


#6051: iT::value_type should use iterator_traits (needed for SunCC/stlport4
compatibility)
------------------------------------------------------+---------------------
 Reporter: Fedor Sergeev <Fedor.Sergeev@…> | Owner: ljsimons
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: polygon
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: |
------------------------------------------------------+---------------------
 polygon/gtl_boost_unit_test fails to compile with SunCC giving among
 anything else the following diagnostics:

 {{{
 ] sunCC -library=stlport4 -I. libs/polygon/test/gtl_boost_unit_test.cpp -c
 ...
 "./boost/polygon/polygon_traits.hpp", line 1039: Error: boost::polygon::iT
 is not a namespace or class name.
 "./boost/polygon/polygon_traits.hpp", line 1067: Where: While
 instantiating "boost::polygon::point_sequence_is_45<const
 boost::polygon::point_data<int>*>(const boost::polygon::point_data<int>*,
 const boost
 "./boost/polygon/polygon_traits.hpp", line 1067: Where: Instantiated
 from boost::polygon::is_45<boost::polygon::polygon_45_data<int>>(const
 boost::polygon::polygon_45_data<int>&).
 "libs/polygon/test/gtl_boost_unit_test.cpp", line 1537: Where:
 Instantiated from non-template code.
 "./boost/polygon/polygon_traits.hpp", line 1039: Error: value_type is not
 defined.
 "./boost/polygon/polygon_traits.hpp", line 1067: Where: While
 instantiating "boost::polygon::point_sequence_is_45<const
 boost::polygon::point_data<int>*>(const boost::polygon::point_data<int>*,
 const boost
 "./boost/polygon/polygon_traits.hpp", line 1067: Where: Instantiated
 from boost::polygon::is_45<boost::polygon::polygon_45_data<int>>(const
 boost::polygon::polygon_45_data<int>&).
 "libs/polygon/test/gtl_boost_unit_test.cpp", line 1537: Where:
 Instantiated from non-template code.
 "./boost/polygon/point_traits.hpp", line 16: Error: boost::polygon::T is
 not a namespace or class name.
 "./boost/polygon/polygon_traits.hpp", line 1040: Where: While
 specializing "boost::polygon::point_traits<int>".
 "./boost/polygon/polygon_traits.hpp", line 1040: Where: Instantiated
 from boost::polygon::point_sequence_is_45<const
 boost::polygon::point_data<int>*>(const boost::polygon::point_data<int>*,
 const boost::p
 "./boost/polygon/polygon_traits.hpp", line 1067: Where: Instantiated
 from boost::polygon::is_45<boost::polygon::polygon_45_data<int>>(const
 boost::polygon::polygon_45_data<int>&).
 "libs/polygon/test/gtl_boost_unit_test.cpp", line 1537: Where:
 Instantiated from non-template code.
 ...
 ]
 }}}

 That all happens because boost/polygon in a couple of places uses
 iT::value_type construct, which is a non-standard way to query value_type
 iterator trait. It works with g++, but it does not work with stlport (at
 least with stlport4 shipped with SunCC).

 {{{
 ] git grep iT::value_type -- boost/polygon
 boost/polygon/polygon_45_set_data.hpp: typedef typename iT::value_type
 Point;
 boost/polygon/polygon_traits.hpp: typedef typename iT::value_type
 Point;
 ]
 }}}

 These should be converted to a standard way of querying iterator traits
 used throught all the boost (and polygon in particular) -
 '''std::iterator_traits<iT>::value_type'''

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6051>
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