Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
iterator_range_core.hpp File Reference

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>
Include dependency graph for iterator_range_core.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::iterator_range_detail::iterator_range_impl< IteratorT >
 
struct  boost::iterator_range_detail::range_tag
 
struct  boost::iterator_range_detail::const_range_tag
 
struct  boost::iterator_range_detail::iterator_range_tag
 
struct  boost::iterator_range_detail::pure_iterator_traversal_impl< S >
 
struct  boost::iterator_range_detail::pure_iterator_traversal_impl< sizeof(bidirectional_t)>
 
struct  boost::iterator_range_detail::pure_iterator_traversal_impl< sizeof(random_access_t)>
 
struct  boost::iterator_range_detail::pure_iterator_traversal< IteratorT >
 
class  boost::iterator_range_detail::iterator_range_base< IteratorT, TraversalTag >
 
class  boost::iterator_range_detail::iterator_range_base< IteratorT, bidirectional_traversal_tag >
 
class  boost::iterator_range_detail::iterator_range_base< IteratorT, random_access_traversal_tag >
 
singleton  boost::iterator_range< IteratorT >
 iterator_range class More...
 

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...
 

Detailed Description

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.