28#ifndef __Ogre_Iterator_Wrapper_H__
29#define __Ogre_Iterator_Wrapper_H__
46template <
typename T,
typename IteratorType,
typename ValType>
134template <
typename T,
typename IteratorType>
152 :
IteratorWrapper<T, IteratorType, typename T::value_type>( start, last )
252template <
typename T,
typename IteratorType>
272 :
IteratorWrapper<T, IteratorType, typename T::mapped_type>( start, last )
301 return ((this->
mCurrent++)->second) ;
326 MapIterator(
typename T::iterator start,
typename T::iterator last )
Concrete IteratorWrapper for const access to the underlying key-value container.
ConstMapIterator(typename T::const_iterator start, typename T::const_iterator last)
Constructor.
ConstMapIterator(const T &c)
Constructor.
Concrete IteratorWrapper for const access to the underlying container.
ConstVectorIterator(const T &c)
Constructor.
ConstVectorIterator(typename T::const_iterator start, typename T::const_iterator last)
Constructor.
Basefunctionality for IteratorWrappers.
IteratorType const_iterator
Typedef to fulfill container interface.
const IteratorType & begin()
Bookmark to the begin of the underlying collection.
IteratorType & current()
Full access to the current iterator.
ValType * PointerType
Type you expect to get by funktions like peekNext(Value)Ptr.
const IteratorType & end()
Bookmark to the end (one behind the last element) of the underlying collection.
IteratorType iterator
Typedef to fulfill container interface.
IteratorWrapper()
Private constructor since only the parameterised constructor should be used.
IteratorWrapper(IteratorType start, IteratorType last)
Constructor.
void moveNext()
Moves the iterator on one element.
bool hasMoreElements() const
Returns true if there are more items in the collection.
ValType ValueType
Type you expect to get by funktions like peekNext(Value)
Prepared IteratorWrapper for key-value container.
KeyType peekNextKey(void) const
Returns the next(=current) key element in the collection, without advancing to the next.
ValueType getNext()
Returns the next(=current) value element in the collection, and advances to the next.
MapIteratorWrapper(IteratorType start, IteratorType last)
Constructor.
T::value_type PairType
Unused, just to make it clear that map/set::value_type is not a ValueType.
IteratorWrapper< T, IteratorType, typenameT::mapped_type >::PointerType PointerType
Redefined PointerType for a map/set.
IteratorWrapper< T, IteratorType, typenameT::mapped_type >::ValueType ValueType
Redefined ValueType for a map/set.
const PointerType peekNextValuePtr() const
Returns a pointer to the next/current value element in the collection, without advancing to the next ...
ValueType peekNextValue() const
Returns the next(=current) value element in the collection, without advancing to the next.
T::key_type KeyType
Type you expect to get by funktions like peekNextKey.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
MapIterator(typename T::iterator start, typename T::iterator last)
Constructor.
MapIterator(T &c)
Constructor.
Prepared IteratorWrapper for container like std::vector.
ValueType getNext()
Returns the next(=current) value element in the collection, and advances to the next.
IteratorWrapper< T, IteratorType, typenameT::value_type >::ValueType ValueType
VectorIteratorWrapper(IteratorType start, IteratorType last)
c'tor
IteratorWrapper< T, IteratorType, typenameT::value_type >::PointerType PointerType
PointerType peekNextPtr() const
Returns a pointer to the next(=current) element in the collection, without advancing to the next afte...
ValueType peekNext() const
Returns the next(=current) element in the collection, without advancing to the next.
Concrete IteratorWrapper for nonconst access to the underlying container.
VectorIterator(typename T::iterator start, typename T::iterator last)
Constructor.
VectorIterator(T &c)
Constructor.