75 #ifndef SLIP_KSTRIDE_ITERATOR_HPP
76 #define SLIP_KSTRIDE_ITERATOR_HPP
83 template<
class Iter_T,
int STEP_N>
84 class kstride_iterator
91 typedef typename std::iterator_traits<Iter_T>::value_type
value_type;
93 typedef typename std::iterator_traits<Iter_T>::pointer
pointer;
94 typedef typename std::iterator_traits<Iter_T>::reference
reference;
151 return *(it_ + n * STEP_N);
156 return *(it_ + n * STEP_N);
176 return x.it_ == y.it_;
182 return x.it_ != y.it_;
189 return x.it_ < y.it_;
213 return (x.it_ - y.it_) / STEP_N;
245 #endif //SLIP_KSTRIDE_ITERATOR_HPP
reference operator[](difference_type n)
friend bool operator<(const self &x, const self &y)
std::iterator_traits< Iter_T >::difference_type difference_type
std::random_access_iterator_tag iterator_category
const reference operator[](difference_type n) const
friend difference_type operator-(const self &x, const self &y)
friend bool operator>(const self &x, const self &y)
friend bool operator!=(const self &x, const self &y)
friend self operator+(difference_type n, const self &y)
kstride_iterator(const self &o)
friend bool operator>=(const self &x, const self &y)
std::iterator_traits< Iter_T >::reference reference
friend bool operator<=(const self &x, const self &y)
friend self operator-(const self &x, difference_type n)
friend bool operator==(const self &x, const self &y)
kstride_iterator(Iter_T it)
self & operator+=(difference_type n)
std::iterator_traits< Iter_T >::value_type value_type
std::iterator_traits< Iter_T >::pointer pointer
self & operator-=(difference_type n)
friend self operator+(const self &x, difference_type n)