31#if defined(Circulator_RECURSES)
32#error Recursive header files inclusion detected in Circulator.h
35#define Circulator_RECURSES
37#if !defined Circulator_h
44#include "DGtal/base/IteratorCirculatorTraits.h"
84 template <
typename TIterator>
100 typedef typename boost::iterator_category<TIterator>::type
103 typedef typename std::iterator_traits<TIterator>::value_type
value_type;
105 typedef typename std::iterator_traits<TIterator>::pointer
pointer;
106 typedef typename std::iterator_traits<TIterator>::reference
reference;
154 template<
typename other_Iterator>
168 if (
this != &other )
186 template<
typename other_Iterator>
189 if (
this != &other )
319 template<
typename OtherIterator>
322 return ( ( (!
isValid())&&(!other.isValid()) )
324 ( (
isValid() && other.isValid())
333 template<
typename OtherIterator>
334 bool operator!=(
const OtherIterator& other)
const {
return !(*
this == other); }
348 if ( (d >= n)||(-d >= n) )
350 ASSERT( (d < n)&&(-d < n) );
353 ASSERT( (j >= 0) && (j < n) );
356 typename Iterator::difference_type e = n - j;
367 ASSERT( (j >= 0) && (j < n) );
391 typename Iterator::difference_type d = (
myCurrentIt - c.myCurrentIt);
451 template <
typename TIterator>
463#include "DGtal/base/IteratorFunctions.h"
474#undef Circulator_RECURSES
Aim: Provides an adapter for classical iterators that can iterate through the underlying data structu...
Circulator(const Circulator &other)
Self operator-(difference_type d) const
std::iterator_traits< TIterator >::difference_type difference_type
bool operator<(const Self &) const
bool operator<=(const Self &) const
std::iterator_traits< TIterator >::value_type value_type
bool operator>=(const Self &c) const
bool operator!=(const OtherIterator &other) const
Self & operator+=(difference_type d)
pointer operator->() const
BOOST_STATIC_ASSERT((boost::is_same< typename IteratorCirculatorTraits< TIterator >::Type, IteratorType >::value))
Circulator & operator=(const Circulator &other)
reference operator*() const
std::iterator_traits< TIterator >::reference reference
Circulator< TIterator > Self
reference operator[](difference_type d) const
Circulator(const Circulator< other_Iterator > &other)
difference_type operator-(const Self &c) const
boost::iterator_category< TIterator >::type iterator_category
Circulator(const Iterator &i, const Iterator &itb, const Iterator &ite)
Self operator+(difference_type d) const
Self & operator-=(difference_type d)
bool operator>(const Self &c) const
bool operator!=(const Self &other) const
bool operator==(const Self &other) const
std::iterator_traits< TIterator >::pointer pointer
bool operator==(const OtherIterator &other) const
DGtal is the top-level namespace which contains all DGtal functions and types.
Circulator< TIterator > operator+(typename IteratorCirculatorTraits< TIterator >::Difference d, Circulator< TIterator > &object)
IC::difference_type Difference