diff --git a/include/boost/range/detail/iterator.hpp b/include/boost/range/detail/iterator.hpp index adedf27..b9098e6 100755 --- a/include/boost/range/detail/iterator.hpp +++ b/include/boost/range/detail/iterator.hpp @@ -12,7 +12,9 @@ #define BOOST_RANGE_DETAIL_ITERATOR_HPP #include -#include +#include + +#include ////////////////////////////////////////////////////////////////////////////// // missing partial specialization workaround. @@ -23,7 +25,13 @@ namespace boost namespace range_detail { template< typename T > - struct range_iterator_; + struct range_iterator_ { + template< typename C > + struct pts + { + typedef int type; + }; + }; template<> struct range_iterator_ @@ -31,7 +39,7 @@ namespace boost template< typename C > struct pts { - typedef BOOST_DEDUCED_TYPENAME C::iterator type; + typedef BOOST_RANGE_DEDUCED_TYPENAME C::iterator type; }; }; @@ -41,7 +49,7 @@ namespace boost template< typename P > struct pts { - typedef BOOST_DEDUCED_TYPENAME P::first_type type; + typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type; }; }; @@ -52,7 +60,7 @@ namespace boost struct pts { typedef BOOST_RANGE_DEDUCED_TYPENAME - remove_bounds::type* type; + remove_extent::type* type; }; }; @@ -63,7 +71,7 @@ namespace boost struct pts { typedef BOOST_RANGE_DEDUCED_TYPENAME - remove_bounds::type* type; + remove_extent::type* type; }; }; @@ -106,15 +114,14 @@ namespace boost typedef const wchar_t* type; }; }; - } - + template< typename C > class range_iterator { - typedef BOOST_DEDUCED_TYPENAME range_detail::range::type c_type; + typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type c_type; public: - typedef BOOST_DEDUCED_TYPENAME range_detail::range_iterator_::BOOST_NESTED_TEMPLATE pts::type type; + typedef typename range_detail::range_iterator_::BOOST_NESTED_TEMPLATE pts::type type; }; }