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 
71 
72 } // namespace boost
73 
74 #endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP
GLint y
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
GLint reference
Definition: glext.h:10544
reverse_iterator< BidirectionalIterator > make_reverse_iterator(BidirectionalIterator x)
super_t::difference_type distance_to(reverse_iterator< OtherIterator > const &y) const
GLdouble n
Definition: glext.h:1966
iterator_adaptor< reverse_iterator< Iterator >, Iterator > super_t
GLdouble GLdouble r
GLdouble x
T prior(T x)
Definition: next_prior.hpp:155
reverse_iterator(reverse_iterator< OtherIterator > const &r, typename enable_if_convertible< OtherIterator, Iterator >::type *=0)
void advance(typename super_t::difference_type n)


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:47:40