53 #ifndef CGAL_N_STEP_ADAPTOR_H
54 #define CGAL_N_STEP_ADAPTOR_H 1
59 #if defined(CGAL_CFG_NO_ITERATOR_TRAITS) && \
60 !defined(CGAL_LIMITED_ITERATOR_TRAITS_SUPPORT)
61 template <
class I,
int N,
class Ref,
class Ptr,
62 class Val,
class Dist,
class Ctg>
66 class Ref =
typename std::iterator_traits<I>::reference,
67 class Ptr =
typename std::iterator_traits<I>::pointer,
68 class Val =
typename std::iterator_traits<I>::value_type,
69 class Dist =
typename std::iterator_traits<I>::difference_type,
70 class Ctg =
typename std::iterator_traits<I>::iterator_category>
81 #ifdef CGAL_CFG_NO_ITERATOR_TRAITS
85 typedef typename std::iterator_traits<I>::reference
reference;
86 typedef typename std::iterator_traits<I>::pointer
pointer;
120 std::advance(
nt, N);
133 std::advance(
nt, -N);
155 #ifdef CGAL_CFG_NO_CONSTANTS_IN_FUNCTION_TEMPLATES
162 #endif // CGAL_CFG_NO_CONSTANTS_IN_FUNCTION_TEMPLATES //
174 return tmp.operator*();
180 #ifdef CGAL_CFG_NO_ITERATOR_TRAITS
181 #ifndef CGAL_LIMITED_ITERATOR_TRAITS_SUPPORT
188 typedef _Circulator_traits<iterator_category> C_Traits;
189 typedef typename C_Traits::category category;
190 friend inline category
192 #endif // CGAL_LIMITED_ITERATOR_TRAITS_SUPPORT
193 #endif // CGAL_CFG_NO_ITERATOR_TRAITS //
195 #ifndef CGAL_CFG_NO_CONSTANTS_IN_FUNCTION_TEMPLATES
196 template <
class I,
int N,
class Ref,
class Ptr,
197 class Val,
class Dist,
class Ctg>
202 #endif // CGAL_CFG_NO_CONSTANTS_IN_FUNCTION_TEMPLATES //
205 #endif // CGAL_N_STEP_ADAPTOR_H //
#define CGAL_assertion(EX)
bool operator!=(CGAL_NULL_TYPE p) const
bool operator<=(const Self &i) const
std::iterator_traits< I >::reference reference
bool operator!=(const Self &i) const
bool operator==(CGAL_NULL_TYPE p) const
bool operator==(const Self &i) const
bool operator>(const Self &i) const
Self operator+(difference_type n) const
Iterator_from_circulator< C, Ref, Ptr > operator+(Dist n, const Iterator_from_circulator< C, Ref, Ptr > &circ)
std::iterator_traits< I >::pointer pointer
Self & operator+=(difference_type n)
Circulator current_circulator() const
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
bool operator<(const Self &i) const
N_step_adaptor< I, N, Ref, Ptr, Val, Dist, Ctg > Self
difference_type operator-(const Self &i) const
bool operator>=(const Self &i) const
I_Circulator_size_traits< iterator_category, I > C_S_Traits
Self operator-(difference_type n) const
Self & operator-=(difference_type n)
#define CGAL_BEGIN_NAMESPACE
N_step_adaptor(const N_step_adaptor< II, N > &j)
C_S_Traits::size_type size_type
Iterator current_iterator() const
Ref operator[](difference_type n) const
#define CGAL_END_NAMESPACE
N_step_adaptor(Iterator j)
Self min_circulator() const