147 typedef IBaseIterator<A> self;
148 typedef self& self_reference;
149 typedef const self_reference const_self_reference;
151 virtual bool operator==(const_self_reference rhs) = 0;
154 virtual self_reference operator++() = 0;
157 virtual self_reference operator++(
int) = 0;
160 virtual A* operator->() = 0;
162 inline bool operator!=(const_self_reference rhs){
return !((*this) == rhs); }
175class IIterator:
public IBaseIterator<A>
178 typedef IIterator<A> self;
179 typedef self& self_reference;
180 typedef const self_reference const_self_reference;
182 IIterator(){ void_constructor(); }
184 IIterator(const_self_reference itr) { copy_constructor(itr); }
186 virtual self_reference operator=(const_self_reference other) = 0;
189 virtual void void_constructor() = 0;
190 virtual void copy_constructor(const_self_reference itr) = 0;
205 typedef T value_type;
206 typedef value_type& reference;
207 typedef const value_type& const_reference;
210 virtual bool empty()
const = 0;
212 typedef IIterator<reference> iterator;
213 virtual iterator begin() = 0;
214 virtual iterator end() = 0;
216 typedef IIterator<const_reference> const_iterator;
217 virtual const_iterator begin()
const = 0;
218 virtual const_iterator end()
const = 0;
bool operator!=(const Rational &a, const Rational &b)
bool operator==(const Rational &a, const Rational &b)
Templated accessor interface for accessing individual data (for instance, of an enumerator).
const value_type & const_reference
virtual const_reference Current() const =0
Gets the current element in the collection (read only).
virtual reference Current()=0
Gets the current element in the collection (read and write).
Base enumerator interface for simple iteration over a generic collection.
virtual bool IsValid() const =0
Current position is inside the collection (not -1 or past the end)
void operator=(const IBaseEnumerator &)
IBaseEnumerator(const IBaseEnumerator &)
disable copy constructor and assignment operator
virtual void Reset()=0
Sets the enumerator to its initial position: -1, which is before the first element in the collection.
virtual bool MoveNext()=0
Advances the enumerator to the next element of the collection. returns true if the enumerator was suc...
Templated enumerator interface for simple iteration over a generic collection of T's.
fglmVector operator*(const fglmVector &v, const number n)