31 #if defined(Circulator_RECURSES) 32 #error Recursive header files inclusion detected in Circulator.h 33 #else // defined(Circulator_RECURSES) 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 )
317 bool operator!=(
const Self& other)
const {
return !(*
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) );
451 template <
typename TIterator>
463 #include "DGtal/base/IteratorFunctions.h" 472 #endif // !defined Circulator_h 474 #undef Circulator_RECURSES 475 #endif // else defined(Circulator_RECURSES) reference operator*() const
Circulator< TIterator > Self
std::iterator_traits< TIterator >::pointer pointer
bool operator<(const Self &) const
std::iterator_traits< TIterator >::value_type value_type
Self operator+(difference_type d) const
bool operator==(const OtherIterator &other) const
Self operator-(difference_type d) const
BOOST_STATIC_ASSERT((boost::is_same< typename IteratorCirculatorTraits< TIterator >::Type, IteratorType >::value))
bool operator>=(const Self &c) const
Circulator(const Circulator< other_Iterator > &other)
Circulator(const Iterator &i, const Iterator &itb, const Iterator &ite)
bool operator==(const Self &other) const
pointer operator->() const
Circulator(const Circulator &other)
reference operator[](difference_type d) const
bool operator<=(const Self &) const
Aim: Provides an adapter for classical iterators that can iterate through the underlying data structu...
DGtal is the top-level namespace which contains all DGtal functions and types.
Self & operator+=(difference_type d)
IC::difference_type Difference
Circulator & operator=(const Circulator &other)
boost::iterator_category< TIterator >::type iterator_category
Self & operator-=(difference_type d)
difference_type operator-(const Self &c) const
bool operator>(const Self &c) const
bool operator!=(const Self &other) const
std::iterator_traits< TIterator >::reference reference
bool operator!=(const OtherIterator &other) const
std::iterator_traits< TIterator >::difference_type difference_type