iteratorfacades.hh File Reference


Detailed Description

This file implements iterator facade classes for writing stl conformant iterators.

With using these facades writing iterators for arbitrary containers becomes much less cumbersome as only few functions have to be implemented. All other functions needed by the stl are provided by the facades using the Barton-Nackman trick (also known as curiously recurring template pattern.

#include <iterator>
#include "typetraits.hh"

Go to the source code of this file.


Namespaces

namespace  Dune

Classes

class  Dune::ForwardIteratorFacade< T, V, R, D >
 Base class for stl conformant forward iterators. More...
class  Dune::BidirectionalIteratorFacade< T, V, R, D >
 Facade class for stl conformant bidirectional iterators. More...
class  Dune::RandomAccessIteratorFacade< T, V, R, D >
 Base class for stl conformant forward iterators. More...

Functions

template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator== (const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator!= (const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator== (const BidirectionalIteratorFacade< T1, V1, R1, D > &lhs, const BidirectionalIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator!= (const BidirectionalIteratorFacade< T1, V1, R1, D > &lhs, const BidirectionalIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator== (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator!= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator< (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator<= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator> (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, bool >::Type 
Dune::operator>= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator.
template<class T1, class V1, class R1, class D, class T2, class V2, class R2>
EnableIfInterOperable< T1,
T2, D >::Type 
Dune::operator- (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Calculates the difference between two pointers.

Generated on 9 Apr 2008 with Doxygen (ver 1.5.2) [logfile].