5 #ifndef BALL_CONCEPT_RANDOMACCESSITERATOR_H 6 #define BALL_CONCEPT_RANDOMACCESSITERATOR_H 12 #ifndef BALL_CONCEPT_BIDIRECTIONALITERATOR_H 23 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
190 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
195 return (tmp_iterator += distance);
203 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
211 if (!b.getTraits().isValid())
222 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
232 return (*
this -= -distance);
238 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
248 return (*
this += -distance);
262 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
267 return (iterator += distance);
270 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
275 return (iterator -= distance);
278 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
286 if (!iterator.isValid())
298 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
306 if (!iterator.isValid())
317 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
318 bool ConstRandomAccessIterator<Container, DataType, Position, Traits>::operator >=
325 if (!iterator.isValid())
337 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
338 bool ConstRandomAccessIterator<Container, DataType, Position, Traits>::operator >
345 if (!iterator.isValid())
358 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
369 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
378 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
387 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
396 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
412 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
497 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
506 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
515 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
524 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
535 #endif // BALL_CONCEPT_RANDOMACCESSITERATOR_H static RandomAccessIterator rbegin(const Container &container)
BALL_INLINE bool isSingular() const
std::random_access_iterator_tag iterator_category
ConstBidirectionalIterator< Container, DataType, Position, Traits > Base
BALL_INLINE bool isEnd() const
Check whether the iterator points to the position after the last item of the container.
BALL_INLINE bool operator-() const
static ConstRandomAccessIterator end(const Container &container)
static ConstRandomAccessIterator rend(const Container &container)
static ConstRandomAccessIterator rbegin(const Container &container)
BALL_INLINE const Traits & getTraits() const
Get a constant reference to the traits of this iterator.
BALL_INLINE void toBegin()
BALL_INLINE RandomAccessIterator()
bool operator<=(const ConstRandomAccessIterator &iterator) const
ConstRandomAccessIterator & operator-=(Distance distance)
ConstRandomAccessIterator< Container, DataType, Position, Traits > Base
BALL_INLINE bool operator+() const
const DataType & reference
BALL_INLINE ~ConstRandomAccessIterator()
bool operator>(const ConstRandomAccessIterator &iterator) const
BALL_INLINE ConstRandomAccessIterator(const ConstRandomAccessIterator &iterator)
static ConstRandomAccessIterator begin(const Container &container)
BALL_INLINE RandomAccessIterator(const Container &container)
static RandomAccessIterator begin(const Container &container)
ConstRandomAccessIterator & operator+=(Distance distance)
BALL_INLINE ConstRandomAccessIterator()
BALL_INLINE ~RandomAccessIterator()
static RandomAccessIterator rend(const Container &container)
BALL_INLINE RandomAccessIterator(const RandomAccessIterator &iterator)
BALL_INLINE pointer operator->() const
Return a pointer to the current data.
static RandomAccessIterator end(const Container &container)
const DataType & operator[](Index index) const
BALL_INLINE bool isValid() const
bool operator<(const ConstRandomAccessIterator &iterator) const
bool operator>=(const ConstRandomAccessIterator &iterator) const
BALL_INLINE reference operator*() const
Convert an iterator to its Datatype by returning a reference to the current data. ...
ConstRandomAccessIterator(const Container &container)
BALL_INLINE const Container * getContainer() const
Get a constant pointer to the container of this iterator.