1 #ifndef CIRC_ITERATOR_H
2 #define CIRC_ITERATOR_H
17 typedef std::forward_iterator_tag iterator_category;
18 typedef typename std::iterator_traits<ForwardIterator>::value_type value_type;
19 typedef typename std::iterator_traits<ForwardIterator>::difference_type difference_type;
20 typedef typename std::iterator_traits<ForwardIterator>::pointer pointer;
21 typedef typename std::iterator_traits<ForwardIterator>::reference reference;
26 CircIterator(
const ForwardIterator& f,
const ForwardIterator& l,
const ForwardIterator& c)
34 CircIterator(
const ForwardIterator& f,
const ForwardIterator& l)
67 reference operator*() {
70 pointer operator->() {
71 return cur.operator->();
74 bool operator==(
const ForwardIterator& other)
const {
79 return cur == other.cur;
82 bool operator!=(
const ForwardIterator& other)
const {
87 return cur != other.cur;
90 ForwardIterator base()
const {
95 ForwardIterator first, last, init, cur;
Creates a circular iterator from a range of forward iterators.
Definition: CircIterator.hpp:15