*** empty log message ***

[SVN r24877]
This commit is contained in:
Thorsten Jørgen Ottosen
2004-09-02 17:32:58 +00:00
parent caac9c37c3
commit bf9925e2aa
3 changed files with 40 additions and 6 deletions

View File

@ -284,7 +284,7 @@ namespace boost {
} }
/*
namespace range_detail namespace range_detail
{ {
template< class Range > template< class Range >
@ -323,7 +323,7 @@ namespace boost {
return make_iterator_range( new_begin, new_end ); return make_iterator_range( new_begin, new_end );
} }
} }*/
#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING #ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
@ -337,7 +337,7 @@ namespace boost {
} }
/*
template< class Range > template< class Range >
inline iterator_range< BOOST_DEDUCED_TYPENAME range_result_iterator<Range>::type > inline iterator_range< BOOST_DEDUCED_TYPENAME range_result_iterator<Range>::type >
make_sub_range( Range& r, make_sub_range( Range& r,
@ -356,7 +356,7 @@ namespace boost {
BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end = 0 ) BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end = 0 )
{ {
return range_detail::make_super_range_impl( r, advance_begin, advance_end ); return range_detail::make_super_range_impl( r, advance_begin, advance_end );
} }*/
#else #else
//! iterator_range construct helper //! iterator_range construct helper
@ -381,7 +381,7 @@ namespace boost {
} }
/*
template< class Range > template< class Range >
inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type > inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
make_sub_range( Range& r, make_sub_range( Range& r,
@ -419,7 +419,7 @@ namespace boost {
BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end = 0 ) BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end = 0 )
{ {
return range_detail::make_super_range_impl( r, advance_begin, advance_end ); return range_detail::make_super_range_impl( r, advance_begin, advance_end );
} }*/
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING

View File

@ -48,8 +48,26 @@ rbegin( const C& c )
return BOOST_DEDUCED_TYPENAME range_const_reverse_iterator<C>::type( end( c ) ); return BOOST_DEDUCED_TYPENAME range_const_reverse_iterator<C>::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<const char*>::type rbegin<const char*>( const char*& c )
{
return range_const_reverse_iterator<const char*>::type( end<const char*>( c ) );
}
template<>
inline range_const_reverse_iterator<const wchar_t*>::type rbegin<const wchar_t*>( const wchar_t*& c )
{
return range_const_reverse_iterator<const wchar_t*>::type( end<const wchar_t*>( c ) );
}
#endif #endif
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
} }
#endif #endif

View File

@ -91,6 +91,22 @@ inline BOOST_DEDUCED_TYPENAME range_size<T>::type size( const T& r )
return range_detail::size( 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<const char*>::type size<const char*>( const char* r )
{
return range_detail::str_size( r );
}
template<>
inline range_size<const wchar_t*>::type size<const wchar_t*>( const wchar_t* r )
{
return range_detail::str_size( r );
}
#endif
} // namespace 'boost' } // namespace 'boost'
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING