31template<
class Container,
bool Const>
42 && fulcrum_ == rhs.fulcrum_
47template<
class Container,
bool Const>
58template<
class Container,
bool Const>
72template<
class Container,
bool Const>
82template<
class Container,
bool Const>
96template<
class Container,
bool Const>
105 fulcrum_(rhs.fulcrum_)
111template<
class Container,
bool Const>
114 return (end_ == begin_);
118template<
class Container,
bool Const>
122 return (end_ - begin_);
126template<
class Container,
bool Const>
130 return (iter_ - fulcrum_);
134template<
class Container,
bool Const>
149 return !(iter_ == fulcrum_);
153template<
class Container,
bool Const>
160template<
class Container,
bool Const>
167template<
class Container,
bool Const>
175template<
class Container,
bool Const>
179 if (iter_ == end_ - 1)
188template<
class Container,
bool Const>
203template<
class Container,
bool Const>
217 fulcrum_ = rhs.fulcrum_;
221template<
class Container,
bool Const>
230template<
class Container,
bool Const>
240template<
class Container,
bool Const>
249template<
class Container,
bool Const>
259template<
class Container,
bool Const>
265 return this->
equal(rhs);
269template<
class Container,
bool Const>
275 return !this->
equal(rhs);
279template<
class Container,
bool Const>
287template<
class Container,
bool Const>
295template<
class Container,
bool Const>
302 return (iter_ - rhs.iter_);
direction
Direction type enumeration.
A pair of begin/end iterators used for implementing circular iteration.
void setFulcrumToIterator()
Set the fulcrum to the current position of the iterator.
bool circulate(const CirculatorBase::direction dir=CirculatorBase::NONE)
difference_type nRotations() const
The distance between the iterator and the fulcrum.
reference prev() const
Dereference the previous iterator.
reference operator*() const
Dereference the iterator. Same as curr()
void setIteratorToFulcrum()
Set the iterator to the current position of the fulcrum.
typename std::conditional< Const, typename Container::const_reference, typename Container::reference >::type reference
The reference type (const/non-const)
size_type size() const
Return the range of the iterator pair.
reference operator()() const
Dereference the iterator. Same as curr()
typename Container::size_type size_type
The type that can represent the size of Container.
bool empty() const
True if begin/end iterators are identical.
CirculatorIters< Container, Const > & operator--()
Prefix decrement the iterator.
bool equal(const CirculatorIters< Container, Const > &rhs)
Compare for equality.
reference curr() const
Dereference the current iterator.
CirculatorIters< Container, Const > & operator++()
Prefix increment the iterator.
reference next() const
Dereference the next iterator.
CirculatorIters()
Default construct.
typename Container::difference_type difference_type
The type that represents difference between iterator objects.
typename std::conditional< Const, typename Container::const_iterator, typename Container::iterator >::type iterator
The container iterator type (const/non-const)
void increment()
Move iterator forward.
void decrement()
Move iterator backward.
bool equal(const T &s1, const T &s2)
Compare two values for equality.