id summary reporter owner description type status milestone component version severity resolution keywords cc 6051 iT::value_type should use iterator_traits (needed for SunCC/stlport4 compatibility) Fedor Sergeev Lucanus Simonson "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*, const boost ""./boost/polygon/polygon_traits.hpp"", line 1067: Where: Instantiated from boost::polygon::is_45>(const boost::polygon::polygon_45_data&). ""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*, const boost ""./boost/polygon/polygon_traits.hpp"", line 1067: Where: Instantiated from boost::polygon::is_45>(const boost::polygon::polygon_45_data&). ""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"". ""./boost/polygon/polygon_traits.hpp"", line 1040: Where: Instantiated from boost::polygon::point_sequence_is_45*>(const boost::polygon::point_data*, const boost::p ""./boost/polygon/polygon_traits.hpp"", line 1067: Where: Instantiated from boost::polygon::is_45>(const boost::polygon::polygon_45_data&). ""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::value_type''' " Bugs closed To Be Determined polygon Boost 1.47.0 Problem fixed