diff --git a/include/boost/range/iterator_range.hpp b/include/boost/range/iterator_range.hpp index 3eed5b5..6f093a7 100755 --- a/include/boost/range/iterator_range.hpp +++ b/include/boost/range/iterator_range.hpp @@ -284,7 +284,7 @@ namespace boost { } - + /* namespace range_detail { template< class Range > @@ -323,7 +323,7 @@ namespace boost { return make_iterator_range( new_begin, new_end ); } - } + }*/ #ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING @@ -337,7 +337,7 @@ namespace boost { } - + /* template< class Range > inline iterator_range< BOOST_DEDUCED_TYPENAME range_result_iterator::type > make_sub_range( Range& r, @@ -356,7 +356,7 @@ namespace boost { BOOST_DEDUCED_TYPENAME range_difference::type advance_end = 0 ) { return range_detail::make_super_range_impl( r, advance_begin, advance_end ); - } + }*/ #else //! iterator_range construct helper @@ -381,7 +381,7 @@ namespace boost { } - + /* template< class Range > inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > make_sub_range( Range& r, @@ -419,7 +419,7 @@ namespace boost { BOOST_DEDUCED_TYPENAME range_difference::type advance_end = 0 ) { return range_detail::make_super_range_impl( r, advance_begin, advance_end ); - } + }*/ #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING diff --git a/include/boost/range/rbegin.hpp b/include/boost/range/rbegin.hpp index 52bfd45..11d8d6b 100755 --- a/include/boost/range/rbegin.hpp +++ b/include/boost/range/rbegin.hpp @@ -48,8 +48,26 @@ rbegin( const C& c ) return BOOST_DEDUCED_TYPENAME range_const_reverse_iterator::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<> +inline range_const_reverse_iterator::type rbegin( const char*& c ) +{ + return range_const_reverse_iterator::type( end( c ) ); +} + +template<> +inline range_const_reverse_iterator::type rbegin( const wchar_t*& c ) +{ + return range_const_reverse_iterator::type( end( c ) ); +} + #endif + +#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING + } #endif diff --git a/include/boost/range/size.hpp b/include/boost/range/size.hpp index 34203b8..51a54f6 100755 --- a/include/boost/range/size.hpp +++ b/include/boost/range/size.hpp @@ -91,6 +91,22 @@ inline BOOST_DEDUCED_TYPENAME range_size::type size( const T& r ) return range_detail::size( r ); } +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +// BCB is not able to overload pointer when class overloads are also available +template<> +inline range_size::type size( const char* r ) +{ + return range_detail::str_size( r ); +} + +template<> +inline range_size::type size( const wchar_t* r ) +{ + return range_detail::str_size( r ); +} + +#endif + } // namespace 'boost' #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING