Defines the iterator_class
and related functions.
More...
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <boost/assert.hpp>
#include <boost/iterator/iterator_traits.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
#include <boost/type_traits/is_abstract.hpp>
#include <boost/type_traits/is_array.hpp>
#include <boost/type_traits/is_base_and_derived.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/type_traits/is_function.hpp>
#include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/range/functions.hpp>
#include <boost/range/iterator.hpp>
#include <boost/range/difference_type.hpp>
#include <boost/range/has_range_iterator.hpp>
#include <boost/range/algorithm/equal.hpp>
#include <boost/range/detail/safe_bool.hpp>
#include <boost/utility/enable_if.hpp>
#include <iterator>
#include <algorithm>
#include <cstddef>
Namespaces | |
boost | |
Duration formatting facet for input. | |
boost::iterator_range_detail | |
Typedefs | |
typedef char(& | boost::iterator_range_detail::incrementable_t )[1] |
typedef char(& | boost::iterator_range_detail::bidirectional_t )[2] |
typedef char(& | boost::iterator_range_detail::random_access_t )[3] |
Functions | |
template<class Left , class Right > | |
bool | boost::iterator_range_detail::less_than (const Left &l, const Right &r) |
template<class Left , class Right > | |
bool | boost::iterator_range_detail::greater_than (const Left &l, const Right &r) |
template<class Left , class Right > | |
bool | boost::iterator_range_detail::less_or_equal_than (const Left &l, const Right &r) |
template<class Left , class Right > | |
bool | boost::iterator_range_detail::greater_or_equal_than (const Left &l, const Right &r) |
template<class Left , class Right > | |
bool | boost::iterator_range_detail::equal (const Left &l, const Right &r) |
incrementable_t | boost::iterator_range_detail::test_traversal_tag (boost::incrementable_traversal_tag) |
bidirectional_t | boost::iterator_range_detail::test_traversal_tag (boost::bidirectional_traversal_tag) |
random_access_t | boost::iterator_range_detail::test_traversal_tag (boost::random_access_traversal_tag) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator== (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator!= (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator< (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator<= (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator> (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator>= (const ForwardRange &l, const iterator_range< IteratorT > &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator== (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator== (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator!= (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator!= (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator< (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator< (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator<= (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator<= (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator> (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator> (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<class Iterator1T , class Iterator2T > | |
bool | boost::operator>= (const iterator_range< Iterator1T > &l, const iterator_range< Iterator2T > &r) |
template<class IteratorT , class ForwardRange > | |
BOOST_DEDUCED_TYPENAME boost::enable_if< mpl::not_ < boost::is_base_and_derived < iterator_range_detail::iterator_range_tag, ForwardRange > >, bool >::type | boost::operator>= (const iterator_range< IteratorT > &l, const ForwardRange &r) |
template<typename IteratorT > | |
iterator_range< IteratorT > | boost::make_iterator_range (IteratorT Begin, IteratorT End) |
iterator_range construct helper More... | |
template<typename IteratorT , typename IntegerT > | |
iterator_range< IteratorT > | boost::make_iterator_range_n (IteratorT first, IntegerT n) |
template<class ForwardRange > | |
iterator_range < BOOST_DEDUCED_TYPENAME range_iterator< ForwardRange > ::type > | boost::make_iterator_range (ForwardRange &r) |
iterator_range construct helper More... | |
template<class ForwardRange > | |
iterator_range < BOOST_DEDUCED_TYPENAME range_iterator< const ForwardRange >::type > | boost::make_iterator_range (const ForwardRange &r) |
template<class Range > | |
iterator_range < BOOST_DEDUCED_TYPENAME range_iterator< Range >::type > | boost::iterator_range_detail::make_range_impl (Range &r, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_begin, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_end) |
template<class Range > | |
iterator_range < BOOST_DEDUCED_TYPENAME range_iterator< Range >::type > | boost::make_iterator_range (Range &r, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_begin, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_end) |
template<class Range > | |
iterator_range < BOOST_DEDUCED_TYPENAME range_iterator< const Range > ::type > | boost::make_iterator_range (const Range &r, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_begin, BOOST_DEDUCED_TYPENAME range_difference< Range >::type advance_end) |
template<typename SeqT , typename Range > | |
SeqT | boost::copy_range (const Range &r) |
copy a range into a sequence More... | |
Defines the iterator_class
and related functions.
iterator_range
is a simple wrapper of iterator pair idiom. It provides a rich subset of Container interface.