28 #ifndef __Ogre_Iterator_Wrapper_H__
29 #define __Ogre_Iterator_Wrapper_H__
46 template <
typename T,
typename IteratorType,
typename ValType>
134 template <
typename T,
typename IteratorType>
152 :
IteratorWrapper<T, IteratorType, typename T::value_type>( start, last )
185 template <
typename T>
216 template <
typename T>
252 template <
typename T,
typename IteratorType>
272 :
IteratorWrapper<T, IteratorType, typename T::mapped_type>( start, last )
301 return ((this->
mCurrent++)->second) ;
318 template <
typename T>
326 MapIterator(
typename T::iterator start,
typename T::iterator last )
351 template <
typename T>
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.
const IteratorType & end()
Bookmark to the end (one behind the last element) of the underlying collection.
IteratorType iterator
Typedef to fulfill container interface.
IteratorType const_iterator
Typedef to fulfill container interface.
ValType * PointerType
Type you expect to get by funktions like peekNext(Value)Ptr.
ValType ValueType
Type you expect to get by funktions like peekNext(Value)
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.
IteratorType & current()
Full access to the current iterator.
bool hasMoreElements() const
Returns true if there are more items in the collection.
const IteratorType & begin()
Bookmark to the begin of the underlying collection.
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.
IteratorWrapper< T, IteratorType, typename T::mapped_type >::ValueType ValueType
Redefined ValueType for a map/set.
T::value_type PairType
Unused, just to make it clear that map/set::value_type is not a ValueType.
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.
IteratorWrapper< T, IteratorType, typename T::mapped_type >::PointerType PointerType
Redefined PointerType for a map/set.
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.
IteratorWrapper< T, IteratorType, typename T::value_type >::ValueType ValueType
ValueType getNext()
Returns the next(=current) value element in the collection, and advances to the next.
IteratorWrapper< T, IteratorType, typename T::value_type >::PointerType PointerType
VectorIteratorWrapper(IteratorType start, IteratorType last)
c'tor
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.