shawn::DerefIterator< VAL, IT > Class Template Reference

Convenience iterator wrapper to auto-dereference pointers. More...

#include <deref_iterator.h>

List of all members.

Public Types

types
typedef IT base_type
typedef VAL value_type
typedef DerefIterator< VAL, IT > self_type

Public Member Functions

construction
 DerefIterator ()
 DerefIterator (const self_type &st)
 DerefIterator (const base_type &bt)
operators
self_typeoperator= (const self_type &st)
value_typeoperator* (void) const
value_typeoperator-> (void) const


Detailed Description

template<typename VAL, typename IT>
class shawn::DerefIterator< VAL, IT >

Convenience iterator wrapper to auto-dereference pointers.

Iterator wrapper that dereferences pointers at access.

Consider there is a vector in which Thing* pointers are stored for some reason, but the pointers are all non-Null

  vector<Thing*> things;

...then the vector can be treated like a vector<Thing>:

  for( DerefIterator< Thing, vector<Thing>::iterator > it=things.begin();
       it != things.end();
       ++it )
    {
       Thing& t = *it;
       it->method();
    }

Member Typedef Documentation

template<typename VAL, typename IT>
typedef IT shawn::DerefIterator< VAL, IT >::base_type

template<typename VAL, typename IT>
typedef VAL shawn::DerefIterator< VAL, IT >::value_type

template<typename VAL, typename IT>
typedef DerefIterator<VAL, IT> shawn::DerefIterator< VAL, IT >::self_type


Constructor & Destructor Documentation

template<typename VAL, typename IT>
shawn::DerefIterator< VAL, IT >::DerefIterator (  )  [inline]

template<typename VAL, typename IT>
shawn::DerefIterator< VAL, IT >::DerefIterator ( const self_type st  )  [inline]

template<typename VAL, typename IT>
shawn::DerefIterator< VAL, IT >::DerefIterator ( const base_type bt  )  [inline]


Member Function Documentation

template<typename VAL, typename IT>
self_type& shawn::DerefIterator< VAL, IT >::operator= ( const self_type st  )  [inline]

template<typename VAL, typename IT>
value_type& shawn::DerefIterator< VAL, IT >::operator* ( void   )  const [inline]

template<typename VAL, typename IT>
value_type* shawn::DerefIterator< VAL, IT >::operator-> ( void   )  const [inline]


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

Generated on Sun Feb 5 00:00:58 2012 for Shawn by  doxygen 1.5.6