1 #ifndef MHO_BidirectionalStrideIterator_HH__
2 #define MHO_BidirectionalStrideIterator_HH__
32 : fBegin(begin_ptr), fPtr(ptr), fLength(length), fStride(stride){};
35 : fBegin(copy.fBegin), fPtr(copy.fPtr), fLength(copy.fLength), fStride(copy.fStride){};
67 fPtr += fStride * diff;
73 fPtr -= fStride * diff;
106 fLength = rhs.fLength;
107 fStride = rhs.fStride;
120 std::size_t
GetOffset()
const {
return std::distance(fBegin, fPtr); }
122 bool IsValid()
const {
return ((fBegin <= fPtr) && (fPtr < fBegin + fLength)); }
149 : fBegin(begin_ptr), fPtr(const_cast< XValueType* >(ptr)),
150 fLength(length), fStride(stride){};
153 : fBegin(copy.fBegin), fPtr(copy.fPtr), fLength(copy.fLength), fStride(copy.fStride){};
185 fPtr += fStride * diff;
191 fPtr -= fStride * diff;
220 fLength = rhs.fLength;
221 fStride = rhs.fStride;
232 std::size_t
GetOffset()
const {
return std::distance(fBegin, fPtr); }
234 bool IsValid()
const {
return ((fBegin <= fPtr) && (fPtr < fBegin + fLength)); }
Class MHO_BidirectionalConstStrideIterator.
Definition: MHO_BidirectionalStrideIterator.hh:139
MHO_BidirectionalConstStrideIterator(pointer begin_ptr, pointer ptr, std::size_t length, std::size_t stride)
Definition: MHO_BidirectionalStrideIterator.hh:148
pointer operator->() const
Definition: MHO_BidirectionalStrideIterator.hh:212
const XValueType * pointer
Definition: MHO_BidirectionalStrideIterator.hh:144
std::size_t GetOffset() const
Definition: MHO_BidirectionalStrideIterator.hh:232
bool IsValid() const
Definition: MHO_BidirectionalStrideIterator.hh:234
self_type operator++(int)
Definition: MHO_BidirectionalStrideIterator.hh:167
XValueType value_type
Definition: MHO_BidirectionalStrideIterator.hh:142
self_type operator--()
Definition: MHO_BidirectionalStrideIterator.hh:161
MHO_BidirectionalConstStrideIterator(const self_type ©)
Definition: MHO_BidirectionalStrideIterator.hh:152
std::bidirectional_iterator_tag iterator_category
Definition: MHO_BidirectionalStrideIterator.hh:145
self_type operator++()
Definition: MHO_BidirectionalStrideIterator.hh:155
bool operator==(const self_type &rhs) const
Definition: MHO_BidirectionalStrideIterator.hh:226
const XValueType & reference
Definition: MHO_BidirectionalStrideIterator.hh:143
self_type operator-=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:189
reference operator*() const
Definition: MHO_BidirectionalStrideIterator.hh:210
pointer GetPtr() const
Definition: MHO_BidirectionalStrideIterator.hh:230
self_type operator-(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:202
self_type operator=(const self_type &rhs)
Definition: MHO_BidirectionalStrideIterator.hh:214
self_type operator+=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:183
self_type operator+(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:195
std::ptrdiff_t difference_type
Definition: MHO_BidirectionalStrideIterator.hh:146
bool operator!=(const self_type &rhs) const
Definition: MHO_BidirectionalStrideIterator.hh:228
std::ptrdiff_t operator-(const self_type &iter)
Definition: MHO_BidirectionalStrideIterator.hh:181
self_type operator--(int)
Definition: MHO_BidirectionalStrideIterator.hh:174
Class MHO_BidirectionalStrideIterator.
Definition: MHO_BidirectionalStrideIterator.hh:22
XValueType & reference
Definition: MHO_BidirectionalStrideIterator.hh:26
self_type operator--(int)
Definition: MHO_BidirectionalStrideIterator.hh:56
self_type operator=(const self_type &rhs)
Definition: MHO_BidirectionalStrideIterator.hh:100
std::bidirectional_iterator_tag iterator_category
Definition: MHO_BidirectionalStrideIterator.hh:28
self_type operator++()
Definition: MHO_BidirectionalStrideIterator.hh:37
std::ptrdiff_t difference_type
Definition: MHO_BidirectionalStrideIterator.hh:29
self_type operator+(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:77
const pointer GetPtr() const
Definition: MHO_BidirectionalStrideIterator.hh:118
bool operator==(const self_type &rhs) const
Definition: MHO_BidirectionalStrideIterator.hh:112
self_type operator--()
Definition: MHO_BidirectionalStrideIterator.hh:43
self_type operator++(int)
Definition: MHO_BidirectionalStrideIterator.hh:49
const pointer operator->() const
Definition: MHO_BidirectionalStrideIterator.hh:98
reference operator*()
Definition: MHO_BidirectionalStrideIterator.hh:92
bool IsValid() const
Definition: MHO_BidirectionalStrideIterator.hh:122
XValueType value_type
Definition: MHO_BidirectionalStrideIterator.hh:25
MHO_BidirectionalStrideIterator self_type
Definition: MHO_BidirectionalStrideIterator.hh:24
self_type operator+=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:65
pointer GetPtr()
Definition: MHO_BidirectionalStrideIterator.hh:116
MHO_BidirectionalStrideIterator(const self_type ©)
Definition: MHO_BidirectionalStrideIterator.hh:34
self_type operator-=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:71
bool operator!=(const self_type &rhs) const
Definition: MHO_BidirectionalStrideIterator.hh:114
std::ptrdiff_t operator-(const self_type &iter)
Definition: MHO_BidirectionalStrideIterator.hh:63
std::size_t GetOffset() const
Definition: MHO_BidirectionalStrideIterator.hh:120
self_type operator-(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalStrideIterator.hh:84
MHO_BidirectionalStrideIterator(pointer begin_ptr, pointer ptr, std::size_t length, std::size_t stride)
Definition: MHO_BidirectionalStrideIterator.hh:31
const reference operator*() const
Definition: MHO_BidirectionalStrideIterator.hh:94
pointer operator->()
Definition: MHO_BidirectionalStrideIterator.hh:96
XValueType * pointer
Definition: MHO_BidirectionalStrideIterator.hh:27
Definition: MHO_ChannelLabeler.hh:17