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/IteratorTraits.h"
76 template <
typename TIterator>
88 typedef typename boost::iterator_category<TIterator>::type
91 typedef typename iterator_traits<TIterator>::value_type
value_type;
93 typedef typename iterator_traits<TIterator>::pointer
pointer;
94 typedef typename iterator_traits<TIterator>::reference
reference;
143 template<
typename other_Iterator>
157 if (
this != &other )
175 template<
typename other_Iterator>
178 if (
this != &other )
299 template<
typename OtherIterator>
304 ||( (!
isValid())&&(!other.isValid()) ) );
306 template<
typename OtherIterator>
307 bool operator!=(
const OtherIterator& other)
const {
return !(*
this == other); }
318 ASSERT( (j >= 0) && (j < n) );
319 typename Iterator::difference_type e = n - j;
322 ASSERT( (j >= 0) && (j < n) );
377 #include "DGtal/base/IteratorFunctions.h"
386 #endif // !defined Circulator_h
388 #undef Circulator_RECURSES
389 #endif // else defined(Circulator_RECURSES)