diff --git a/include/boost/range/begin.hpp b/include/boost/range/begin.hpp index 9374568..a551e6d 100755 --- a/include/boost/range/begin.hpp +++ b/include/boost/range/begin.hpp @@ -119,6 +119,23 @@ inline BOOST_DEDUCED_TYPENAME range_const_iterator::type begin( const T& r ) return range_detail::begin( 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_const_iterator::type begin( const char*& r ) +{ + return r; +} + +template<> +inline range_const_iterator::type begin( const wchar_t*& r ) +{ + return r; +} + +#endif + } // namespace boost #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING diff --git a/include/boost/range/size.hpp b/include/boost/range/size.hpp index 0ece155..fc5fa1e 100755 --- a/include/boost/range/size.hpp +++ b/include/boost/range/size.hpp @@ -95,13 +95,13 @@ inline BOOST_DEDUCED_TYPENAME range_size::type size( const T& 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* const& r ) +inline range_size::type size( const char*& r ) { return range_detail::str_size( r ); } template<> -inline range_size::type size( const wchar_t* const& r ) +inline range_size::type size( const wchar_t*& r ) { return range_detail::str_size( r ); }