Go to the documentation of this file.
9 #ifndef WIBBLE_ITERATOR_H
10 #define WIBBLE_ITERATOR_H
16 template<
typename T,
typename I >
21 template<
typename T >
26 template<
typename T >
31 template<
typename T >
38 template<
typename T >
45 template<
typename T,
typename W >
56 template<
typename T,
typename Self >
59 Self &
self() {
return *
static_cast< const Self *
>( this ); }
60 const Self &
self()
const {
return *
static_cast< const Self *
>( this ); }
72 Self
next()
const { Self n(
self() ); n.advance();
return n; }
83 template<
typename T,
typename I >
88 template<
typename T,
typename I >
93 template<
typename T >
104 T
current()
const {
return this->implInterface()->current(); }
105 virtual void advance() { this->implInterface()->advance(); }
110 template<
typename It >
113 typedef typename std::iterator_traits< It >::value_type
Value;
122 template<
typename I >
bool operator==(const StlIterator< It > &o)
Definition: iterator.h:117
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
T * pointer
Definition: iterator.h:66
bool leq(const Iterator< T > &i) const
Definition: amorph.h:303
const typedef T & const_reference
Definition: iterator.h:68
Definition: iterator.h:57
T x
Definition: iterator.h:41
T ElementType
Definition: iterator.h:98
SortabilityTag Sorted
Definition: iterator.h:23
IteratorProxy< T > operator->() const
Definition: iterator.h:70
Definition: iterator.h:17
virtual T current() const
Definition: iterator.h:53
bool operator<=(const Iterator &i) const
Definition: iterator.h:102
bool SortabilityTag
Definition: iterator.h:14
virtual void advance()
Definition: iterator.h:52
T value_type
Definition: iterator.h:64
std::forward_iterator_tag iterator_category
Definition: iterator.h:63
virtual ~IteratorInterface()
Definition: iterator.h:35
virtual void advance()
Definition: iterator.h:115
Iterator(const IteratorInterface< T > &i)
Definition: iterator.h:100
W Wrapped
Definition: iterator.h:48
Definition: iterator.h:32
std::iterator_traits< It >::value_type Value
Definition: iterator.h:113
Self & operator++()
Definition: iterator.h:75
Amorph< Iterator< T >, IteratorInterface< T >, 0 > Super
Definition: iterator.h:97
SortabilityTag Sorted
Definition: iterator.h:28
const Wrapped & wrapped() const
Definition: amorph.h:181
SortabilityTag Unsorted
Definition: iterator.h:18
Self operator++(int)
Definition: iterator.h:76
IteratorProxy(T _x)
Definition: iterator.h:40
T ElementType
Definition: iterator.h:61
T operator*() const
Definition: iterator.h:73
StlIterator(It i)
Definition: iterator.h:114
const T * operator->() const
Definition: iterator.h:42
ptrdiff_t difference_type
Definition: iterator.h:65
Definition: iterator.h:39
virtual Value current() const
Definition: iterator.h:116
T & reference
Definition: iterator.h:67
Iterator()
Definition: iterator.h:101
IteratorMorph(const Wrapped &w)
Definition: iterator.h:50
It m_iterator
Definition: iterator.h:119
IteratorTraits< T, I >::Unsorted isSortedT(I, I)
Definition: iterator.h:84
virtual void advance()
Definition: iterator.h:105
T current() const
Definition: iterator.h:104
Self next() const
Definition: iterator.h:72
Definition: iterator.h:46
IteratorMorph()
Definition: iterator.h:49
Definition: iterator.h:111
Definition: iterator.h:94
virtual T current() const =0