diff --git a/include/boost/range/rbegin.hpp b/include/boost/range/rbegin.hpp index 01697e4..149ba65 100755 --- a/include/boost/range/rbegin.hpp +++ b/include/boost/range/rbegin.hpp @@ -38,17 +38,21 @@ template< class C > inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type rbegin( C& c ) { - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( end( c ) ); + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( end( c ) ); } template< class C > inline BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type rbegin( const C& c ) { - return BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type( end( c ) ); + typedef BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type + iter_type; + return iter_type( end( c ) ); } - +/* #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) // BCB is not able to overload pointer when class overloads are also available template<> @@ -64,7 +68,7 @@ inline range_const_reverse_iterator::type rbegin } #endif - +*/ #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING diff --git a/include/boost/range/rend.hpp b/include/boost/range/rend.hpp index 4e42422..f04df18 100755 --- a/include/boost/range/rend.hpp +++ b/include/boost/range/rend.hpp @@ -38,14 +38,18 @@ template< class C > inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type rend( C& c ) { - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( begin( c ) ); + typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type + iter_type; + return iter_type( begin( c ) ); } template< class C > inline BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type rend( const C& c ) { - return BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type( begin( c ) ); + typedef BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::type + iter_type; + return iter_type( begin( c ) ); } #endif