Dune::ForEachValue< TupleType > Class Template Reference

#include <utility.hh>

List of all members.


Detailed Description

template<class TupleType>
class Dune::ForEachValue< TupleType >

Helper template which implements iteration over all storage elements in a tuple.

Compile-time constructs that allows to process all elements in a tuple. The exact operation performed on an element is defined by a function object, which needs to implement a visit method which is applicable to all storage elements of a tuple.

The following example implements a function object which counts the elements in a tuple

   template <class T>
   struct Counter {
   Counter() : result_(0) {}
   
   template <class T>
   void visit(T& elem) { ++result_; }

   int result_;
   };
The number of elements in the tuple are stored in the member variable result_. The Counter can be used as follows, assuming a tuple t of type MyTuple is given:
   Counter c;
   ForEachValue<MyTuple> forEach(t);

   forEach.apply(c);
   std::cout << "Number of elements is: " << c.result_ << std::endl;

Public Member Functions

 ForEachValue (TupleType &tuple)
 Constructor.
template<class Functor>
void apply (Functor &f)
 Applies a function object to each storage element of the tuple.

Constructor & Destructor Documentation

template<class TupleType>
Dune::ForEachValue< TupleType >::ForEachValue ( TupleType &  tuple  )  [inline]

Constructor.

Parameters:
tuple The tuple which we want to process.


Member Function Documentation

template<class TupleType>
template<class Functor>
void Dune::ForEachValue< TupleType >::apply ( Functor &  f  )  [inline]

Applies a function object to each storage element of the tuple.

Parameters:
f Function object.


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

Generated on Tue Jul 28 22:28:01 2009 for dune-common by  doxygen 1.5.6