iterator/reverse_iterator.hpp
Go to the documentation of this file.
1 // (C) Copyright David Abrahams 2002.
2 // (C) Copyright Jeremy Siek 2002.
3 // (C) Copyright Thomas Witt 2002.
4 // Distributed under the Boost Software License, Version 1.0. (See
5 // accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 #ifndef BOOST_REVERSE_ITERATOR_23022003THW_HPP
8 #define BOOST_REVERSE_ITERATOR_23022003THW_HPP
9 
10 #include <boost/next_prior.hpp>
11 #include <boost/iterator.hpp>
13 
14 namespace boost {
15 namespace iterators {
16 
17  //
18  //
19  //
20  template <class Iterator>
22  : public iterator_adaptor< reverse_iterator<Iterator>, Iterator >
23  {
25 
26  friend class iterator_core_access;
27 
28  public:
30 
31  explicit reverse_iterator(Iterator x)
32  : super_t(x) {}
33 
34  template<class OtherIterator>
38  )
39  : super_t(r.base())
40  {}
41 
42  private:
43  typename super_t::reference dereference() const { return *boost::prior(this->base()); }
44 
45  void increment() { --this->base_reference(); }
46  void decrement() { ++this->base_reference(); }
47 
48  void advance(typename super_t::difference_type n)
49  {
50  this->base_reference() += -n;
51  }
52 
53  template <class OtherIterator>
54  typename super_t::difference_type
56  {
57  return this->base_reference() - y.base();
58  }
59  };
60 
61  template <class BidirectionalIterator>
63  {
65  }
66 
67 } // namespace iterators
68 
69 using iterators::reverse_iterator;
71 
72 } // namespace boost
73 
74 #endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP
iterator.hpp
boost::iterators::iterator_core_access
Definition: iterator_facade.hpp:496
boost::iterators::reverse_iterator::increment
void increment()
Definition: iterator/reverse_iterator.hpp:45
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
boost::iterators::reverse_iterator::reverse_iterator
reverse_iterator()
Definition: iterator/reverse_iterator.hpp:29
boost::iterators::reverse_iterator::super_t
iterator_adaptor< reverse_iterator< Iterator >, Iterator > super_t
Definition: iterator/reverse_iterator.hpp:24
boost::iterators::make_reverse_iterator
reverse_iterator< BidirectionalIterator > make_reverse_iterator(BidirectionalIterator x)
Definition: iterator/reverse_iterator.hpp:62
boost::iterators::reverse_iterator::advance
void advance(typename super_t::difference_type n)
Definition: iterator/reverse_iterator.hpp:48
next_prior.hpp
boost::iterators::reverse_iterator
Definition: iterator/reverse_iterator.hpp:21
boost::iterators::iterator_adaptor
Definition: iterator_adaptor.hpp:251
boost::iterators::iterator_adaptor< reverse_iterator< Iterator >, Iterator >::base
Iterator const & base() const
Definition: iterator_adaptor.hpp:272
boost::iterators::enable_if_convertible
Definition: iterator_adaptor.hpp:133
boost::iterators::reverse_iterator::dereference
super_t::reference dereference() const
Definition: iterator/reverse_iterator.hpp:43
boost::iterators::iterator_facade
Definition: iterator_facade.hpp:47
iterator_adaptor.hpp
boost::prior
T prior(T x)
Definition: next_prior.hpp:155
boost::iterators::reverse_iterator::reverse_iterator
reverse_iterator(reverse_iterator< OtherIterator > const &r, typename enable_if_convertible< OtherIterator, Iterator >::type *=0)
Definition: iterator/reverse_iterator.hpp:35
boost::iterators::iterator_adaptor< reverse_iterator< Iterator >, Iterator >::base_reference
Iterator const & base_reference() const
Definition: iterator_adaptor.hpp:282
boost::iterators::reverse_iterator::decrement
void decrement()
Definition: iterator/reverse_iterator.hpp:46
boost::iterators::reverse_iterator::reverse_iterator
reverse_iterator(Iterator x)
Definition: iterator/reverse_iterator.hpp:31
boost::iterators::reverse_iterator::distance_to
super_t::difference_type distance_to(reverse_iterator< OtherIterator > const &y) const
Definition: iterator/reverse_iterator.hpp:55


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:46:45