CPN
Computational Process Networks
Classes | Public Member Functions | Private Attributes | List of all members
IteratorRef< T > Class Template Reference

A reference to an iterator. More...

#include <IteratorRef.h>

+ Collaboration diagram for IteratorRef< T >:

Classes

class  ItrRef
 
class  ItrRefImpl
 

Public Member Functions

template<typename iter_type >
 IteratorRef (iter_type itr)
 
 IteratorRef (const IteratorRef &itr)
 
IteratorRefoperator= (const IteratorRef &itr)
 
T & operator* ()
 
T * operator-> ()
 
IteratorRef operator++ (int)
 
IteratorRef operator++ ()
 
IteratorRef operator-- (int)
 
IteratorRef operator-- ()
 
bool operator== (const IteratorRef< T > &rhs) const
 
bool operator!= (const IteratorRef< T > &rhs) const
 

Private Attributes

std::auto_ptr< ItrRefitrref
 

Detailed Description

template<typename T>
class IteratorRef< T >

A reference to an iterator.

This iterator container class lets a non templated function take a generic iterator from several different types of objects. This way a function can take a beginning and ending iterator from a deque or a list or a vector or a actual pointer and without having to be a template.

Definition at line 46 of file IteratorRef.h.

Constructor & Destructor Documentation

template<typename T>
template<typename iter_type >
IteratorRef< T >::IteratorRef ( iter_type  itr)
inline

Definition at line 85 of file IteratorRef.h.

86  : itrref(std::auto_ptr<ItrRef>(new ItrRefImpl<iter_type>(itr)))
87  {}
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef< T >::IteratorRef ( const IteratorRef< T > &  itr)
inline

Definition at line 89 of file IteratorRef.h.

90  :itrref(itr.itrref->Clone())
91  {}
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137

Member Function Documentation

template<typename T>
bool IteratorRef< T >::operator!= ( const IteratorRef< T > &  rhs) const
inline

Definition at line 132 of file IteratorRef.h.

References IteratorRef< T >::itrref.

132  {
133  return !itrref->Equals(rhs.itrref.get());
134  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
T& IteratorRef< T >::operator* ( )
inline

Definition at line 98 of file IteratorRef.h.

References IteratorRef< T >::itrref.

98  {
99  return itrref->Dereference();
100  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef IteratorRef< T >::operator++ ( int  )
inline

Definition at line 106 of file IteratorRef.h.

References IteratorRef< T >::itrref.

106  {
107  IteratorRef copy = *this;
108  itrref->Increment();
109  return copy;
110  }
A reference to an iterator.
Definition: IteratorRef.h:46
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef IteratorRef< T >::operator++ ( )
inline

Definition at line 112 of file IteratorRef.h.

References IteratorRef< T >::itrref.

112  {
113  itrref->Increment();
114  return *this;
115  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef IteratorRef< T >::operator-- ( int  )
inline

Definition at line 117 of file IteratorRef.h.

References IteratorRef< T >::itrref.

117  {
118  IteratorRef copy = *this;
119  itrref->Decrement();
120  return copy;
121  }
A reference to an iterator.
Definition: IteratorRef.h:46
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef IteratorRef< T >::operator-- ( )
inline

Definition at line 123 of file IteratorRef.h.

References IteratorRef< T >::itrref.

123  {
124  itrref->Decrement();
125  return *this;
126  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
T* IteratorRef< T >::operator-> ( )
inline

Definition at line 102 of file IteratorRef.h.

References IteratorRef< T >::itrref.

102  {
103  return &itrref->Dereference();
104  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
IteratorRef& IteratorRef< T >::operator= ( const IteratorRef< T > &  itr)
inline

Definition at line 93 of file IteratorRef.h.

References IteratorRef< T >::itrref.

93  {
94  itrref.reset(itr.itrref->Clone());
95  return *this;
96  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137
template<typename T>
bool IteratorRef< T >::operator== ( const IteratorRef< T > &  rhs) const
inline

Definition at line 128 of file IteratorRef.h.

References IteratorRef< T >::itrref.

128  {
129  return itrref->Equals(rhs.itrref.get());
130  }
std::auto_ptr< ItrRef > itrref
Definition: IteratorRef.h:137

Member Data Documentation

template<typename T>
std::auto_ptr<ItrRef> IteratorRef< T >::itrref
private

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