MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / reverse_iterator

Class reverse_iterator

extern/boost/boost/iterator/reverse_iterator.hpp:19–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17 //
18 template <class Iterator>
19 class reverse_iterator
20 : public iterator_adaptor< reverse_iterator<Iterator>, Iterator >
21 {
22 typedef iterator_adaptor< reverse_iterator<Iterator>, Iterator > super_t;
23
24 friend class iterator_core_access;
25
26 public:
27 reverse_iterator() {}
28
29 explicit reverse_iterator(Iterator x)
30 : super_t(x) {}
31
32 template<class OtherIterator>
33 reverse_iterator(
34 reverse_iterator<OtherIterator> const& r
35 , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
36 )
37 : super_t(r.base())
38 {}
39
40 private:
41 typename super_t::reference dereference() const
42 {
43 Iterator it = this->base_reference();
44 --it;
45 return *it;
46 }
47
48 void increment() { --this->base_reference(); }
49 void decrement() { ++this->base_reference(); }
50
51 void advance(typename super_t::difference_type n)
52 {
53 this->base_reference() -= n;
54 }
55
56 template <class OtherIterator>
57 typename super_t::difference_type
58 distance_to(reverse_iterator<OtherIterator> const& y) const
59 {
60 return this->base_reference() - y.base();
61 }
62 };
63
64 template <class BidirectionalIterator>
65 inline reverse_iterator<BidirectionalIterator> make_reverse_iterator(BidirectionalIterator x)

Callers 9

rbeginMethod · 0.50
rendMethod · 0.50
rbeginMethod · 0.50
rendMethod · 0.50
rbeginMethod · 0.50
rendMethod · 0.50
rbeginMethod · 0.50
rendMethod · 0.50
vectorClass · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected