74 #ifndef SLIP_STRIDE_ITERATOR_HPP
75 #define SLIP_STRIDE_ITERATOR_HPP
82 template<
class Iter_T>
90 typedef typename std::iterator_traits<Iter_T>::value_type
value_type;
92 typedef typename std::iterator_traits<Iter_T>::pointer
pointer;
93 typedef typename std::iterator_traits<Iter_T>::reference
reference;
103 it_(o.it_),step_(o.step_)
150 return *(it_ + (n * step_));
155 return *(it_ + (n * step_));
173 assert(x.step_ == y.step_);
174 return x.it_ == y.it_;
180 assert(x.step_ == y.step_);
181 return x.it_ != y.it_;
188 assert(x.step_ == y.step_);
189 return x.it_ < y.it_;
213 assert(x.step_ == y.step_);
214 return (x.it_ - y.it_) / x.step_;
256 #endif //SLIP_STRIDE_ITERATOR_HPP
std::iterator_traits< Iter_T >::difference_type difference_type
friend bool operator==(const self &x, const self &y)
const reference operator[](difference_type n) const
friend difference_type operator-(const self &x, const self &y)
reference operator[](difference_type n)
stride_iterator(const self &o)
self & operator+=(difference_type n)
friend bool operator>=(const self &x, const self &y)
friend bool operator!=(const self &x, const self &y)
std::iterator_traits< Iter_T >::reference reference
stride_iterator(Iter_T it, difference_type n)
friend self operator-(const self &x, difference_type n)
self & operator-=(difference_type n)
friend bool operator<(const self &x, const self &y)
friend bool operator<=(const self &x, const self &y)
std::random_access_iterator_tag iterator_category
friend self operator+(const self &x, difference_type n)
friend bool operator>(const self &x, const self &y)
std::iterator_traits< Iter_T >::value_type value_type
friend self operator+(difference_type n, const self &y)
std::iterator_traits< Iter_T >::pointer pointer