5 #ifndef BALL_CONCEPT_BIDIRECTIONALITERATOR_H
6 #define BALL_CONCEPT_BIDIRECTIONALITERATOR_H
8 #ifndef BALL_CONCEPT_FORWARDITERATOR_H
22 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
142 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
147 Base::getTraits().toBegin();
150 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
155 Base::getTraits().toEnd();
158 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
163 Base::getTraits().toRBegin();
166 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
171 Base::getTraits().toREnd();
174 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
180 Base::getTraits().forward();
184 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
195 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
201 Base::getTraits().backward();
205 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
216 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
226 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
236 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
246 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
257 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
352 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
354 BidirectionalIterator<Container, DataType, Position, Traits>&
357 Base::operator ++ ();
361 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
367 this->operator ++ ();
371 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
376 Base::operator -- ();
380 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
386 this->operator -- ();
390 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
400 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
410 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
420 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
430 template <
typename Container,
typename DataType,
typename Position,
typename Traits>
441 #endif // BALL_CONCEPT_BIDIRECTIONALITERATOR_H
BALL_INLINE bool isEnd() const
Check whether the iterator points to the position after the last item of the container.
BALL_INLINE void toBegin()
BALL_INLINE ConstBidirectionalIterator & operator--()
BALL_INLINE BidirectionalIterator & operator++()
BALL_INLINE BidirectionalIterator()
Default constructor.
BALL_INLINE ConstBidirectionalIterator(const ConstBidirectionalIterator &iterator)
BALL_INLINE ConstBidirectionalIterator & operator++()
#define BALL_PRECONDITION_EXCEPTION(condition, message)
static BidirectionalIterator begin(const Container &container)
static BidirectionalIterator rbegin(const Container &container)
BALL_INLINE pointer operator->() const
Pointer dereferentiation.
BALL_INLINE ~ConstBidirectionalIterator()
static ConstBidirectionalIterator begin(const Container &container)
std::bidirectional_iterator_tag iterator_category
BALL_INLINE BidirectionalIterator & operator--()
BALL_INLINE ~BidirectionalIterator()
Destructor.
BALL_INLINE const Traits & getTraits() const
Get a constant reference to the traits of this iterator.
static BidirectionalIterator rend(const Container &container)
static ConstBidirectionalIterator rbegin(const Container &container)
static ConstBidirectionalIterator rend(const Container &container)
BALL_INLINE ConstBidirectionalIterator()
static ConstBidirectionalIterator end(const Container &container)
BALL_INLINE reference operator*() const
Dereferentiation.
Mutable bidirectional iterator.
BALL_INLINE bool isRBegin() const
Test whether the iterator points to the "reverse" first element of the container. ...
BALL_INLINE BidirectionalIterator(const BidirectionalIterator &iterator)
Copy constructor.
ConstForwardIterator< Container, DataType, Position, Traits > Base
BALL_INLINE ConstBidirectionalIterator(const Container &container)
Construct an iterator bound to a specific container.
BALL_INLINE bool isBegin() const
Check whether the iterator points to the item at the beginning of the container.
BALL_INLINE bool isREnd() const
Test wheter the iterator points to the position before the first element.
ConstBidirectionalIterator< Container, DataType, Position, Traits > Base
static BidirectionalIterator end(const Container &container)