ReverseEnumIterator< EnumType > Class Template Reference

#include <EnumIterator.h>

Inheritance diagram for ReverseEnumIterator< EnumType >:
Collaboration diagram for ReverseEnumIterator< EnumType >:

Public Member Functions

 ReverseEnumIterator (EnumType e)
 
ReverseEnumIteratoroperator++ ()
 
ReverseEnumIteratoroperator++ (int)
 
ReverseEnumIteratoroperator-- ()
 
ReverseEnumIteratoroperator-- (int)
 
bool operator== (const EnumIteratorBase &i) const
 
bool operator!= (const EnumIteratorBase &i) const
 
EnumType operator* () const
 

Protected Types

typedef int iterator_type
 

Protected Attributes

iterator_type current
 

Detailed Description

template<typename EnumType>
class ReverseEnumIterator< EnumType >

bidirectional reverse iterator over an enum type

It can be instantiated using any enum (or C++11 strongly-typed enum) value; the most common expected use scenario has iterators emitted by EnumRange and WholeEnum via standard rbegin() and rend() calls.

In order for the iterator to work, it is mandatory that the underlying enum type's representation values be sequential.

The iterator does not check for bounds; behavior is undefined if the iterator is incremented (or decremented) outside the range representing valid enum symbols (remember: an enum is not a data structure).

See Also
EnumRange, WholeEnum, EnumIterator

Definition at line 109 of file EnumIterator.h.

Member Typedef Documentation

template<typename EnumType >
typedef int EnumIteratorBase< EnumType >::iterator_type
protectedinherited

Definition at line 29 of file EnumIterator.h.

Constructor & Destructor Documentation

template<typename EnumType >
ReverseEnumIterator< EnumType >::ReverseEnumIterator ( EnumType  e)
inlineexplicit

Definition at line 112 of file EnumIterator.h.

Member Function Documentation

template<typename EnumType >
bool EnumIteratorBase< EnumType >::operator!= ( const EnumIteratorBase< EnumType > &  i) const
inlineinherited

Definition at line 39 of file EnumIterator.h.

References EnumIteratorBase< EnumType >::current.

template<typename EnumType >
EnumType EnumIteratorBase< EnumType >::operator* ( ) const
inlineinherited

Definition at line 43 of file EnumIterator.h.

References EnumIteratorBase< EnumType >::current.

template<typename EnumType >
ReverseEnumIterator& ReverseEnumIterator< EnumType >::operator++ ( )
inline

Definition at line 115 of file EnumIterator.h.

template<typename EnumType >
ReverseEnumIterator& ReverseEnumIterator< EnumType >::operator++ ( int  )
inline

Definition at line 121 of file EnumIterator.h.

template<typename EnumType >
ReverseEnumIterator& ReverseEnumIterator< EnumType >::operator-- ( )
inline

Definition at line 128 of file EnumIterator.h.

template<typename EnumType >
ReverseEnumIterator& ReverseEnumIterator< EnumType >::operator-- ( int  )
inline

Definition at line 134 of file EnumIterator.h.

template<typename EnumType >
bool EnumIteratorBase< EnumType >::operator== ( const EnumIteratorBase< EnumType > &  i) const
inlineinherited

Definition at line 35 of file EnumIterator.h.

References EnumIteratorBase< EnumType >::current.

Member Data Documentation

template<typename EnumType >
iterator_type EnumIteratorBase< EnumType >::current
protectedinherited

The documentation for this class was generated from the following file:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors