return iterator_range_detail::greater_or_equal_than( l, r );
}
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#else
template< class Iterator1T, class Iterator2T >
inline bool
operator==( const iterator_range<Iterator1T>& l, const iterator_range<Iterator2T>& r )
return iterator_range_detail::greater_or_equal_than( l, r );
}
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
// iterator range utilities -----------------------------------------//
//! iterator_range construct helper
return iterator_range<IteratorT>(first, boost::next(first, n));
}
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
- template< typename Range >
- inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
- make_iterator_range( Range& r )
- {
- return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
- ( boost::begin( r ), boost::end( r ) );
- }
-
-#else
//! iterator_range construct helper
/*!
Construct an \c iterator_range from a \c Range containing the begin
( r, iterator_range_detail::const_range_tag() );
}
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
namespace iterator_range_detail
{
template< class Range >
}
}
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
- template< class Range >
- inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
- make_iterator_range( Range& r,
- BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
- BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
- {
- return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
- }
-
-#else
-
template< class Range >
inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
make_iterator_range( Range& r,
return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
}
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
//! copy a range into a sequence
/*!
Construct a new sequence of the specified type from the elements