dune-common  2.2.0
Classes | Namespaces | Functions
tuples.hh File Reference

Fallback implementation of the std::tuple class. More...

Go to the source code of this file.

Classes

struct  Dune::TupleAccessTraits< T >
struct  Dune::TupleAccessTraits< T * >
struct  Dune::TupleAccessTraits< T & >
struct  Dune::Nil
 An empty class. More...
struct  Dune::Pair< T1, TT >
 A tuple consisting of two objects. More...
struct  Dune::Pair< T1, Nil >
 A tuple consisting of one object. Specialization of Pair that really is a single value. More...
struct  Dune::TupleToPairs< T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 Converts the Tuple to a list of pairs. More...
struct  Dune::TupleToPairs< T1, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil >
 Specialization for a tuple consisting only of one type. More...
class  Dune::tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 A Tuple of objects. More...
struct  Dune::tuple_element< N, Tuple >
 Get the type of the N-th element of the tuple. More...
struct  Dune::tuple_element< N, Pair< T1, T2 > >
struct  Dune::tuple_element< 0, Pair< T1, T2 > >
 Get the type of the first element of the tuple. More...
struct  Dune::Element< N >
 Get the N-th element of a tuple. More...
struct  Dune::Element< 0 >
 Get the first element of a tuple. More...
struct  Dune::tuple_size< T >
 Template meta_programm to query the size of a tuple. More...
struct  Dune::tuple_size< Pair< T1, T2 > >
struct  Dune::tuple_size< Pair< T1, Nil > >
struct  Dune::tuple_size< Pair< Nil, Nil > >
struct  Dune::tuple_writer< i >
struct  Dune::tuple_writer< 1 >
struct  Dune::tuple_writer< 0 >

Namespaces

namespace  Dune
 

Dune namespace.


Functions

template<int i, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
TupleAccessTraits< typename
tuple_element< i, tuple< T1,
T2, T3, T4, T5, T6, T7, T8, T9 >
>::type >::NonConstType 
Dune::get (tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9 > &t)
template<int i, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
TupleAccessTraits< typename
tuple_element< i, tuple< T1,
T2, T3, T4, T5, T6, T7, T8, T9 >
>::type >::ConstType 
Dune::get (const tuple< T1, T2, T3, T4, T5, T6, T7, T8, T9 > &t)
template<typename T1 , typename T2 , typename U1 , typename U2 >
bool Dune::operator== (const Pair< T1, T2 > &tuple1, const Pair< U1, U2 > &tuple2)
 Equality comparison operator for tuples.
template<typename T1 , typename T2 , typename U1 , typename U2 >
bool Dune::operator!= (const Pair< T1, T2 > &tuple1, const Pair< U1, U2 > &tuple2)
 Inequality comparison operator for tuples.
template<typename T1 , typename T2 , typename U1 , typename U2 >
bool Dune::operator< (const Pair< T1, T2 > &tuple1, const Pair< U1, U2 > &tuple2)
 Less operator for tuples.
template<typename T1 , typename U1 >
bool Dune::operator== (const Pair< T1, Nil > &tuple1, const Pair< U1, Nil > &tuple2)
 Equality comparison operator for tuples.
template<typename T1 , typename U1 >
bool Dune::operator!= (const Pair< T1, Nil > &tuple1, const Pair< U1, Nil > &tuple2)
 Inequality comparison operator for tuples.
template<typename T1 , typename U1 >
bool Dune::operator< (const Pair< T1, Nil > &tuple1, const Pair< U1, Nil > &tuple2)
 Less operator for tuples.
template<typename T1 , typename U1 , typename U2 >
bool Dune::operator== (const Pair< T1, Nil > &tuple1, const Pair< U1, U2 > &tuple2)
 Equality comparison operator for tuples.
template<typename T1 , typename U1 , typename U2 >
bool Dune::operator!= (const Pair< T1, Nil > &tuple1, const Pair< U1, U2 > &tuple2)
 Inequality comparison operator for tuples.
template<typename T1 , typename T2 , typename U1 >
bool Dune::operator== (const Pair< T1, T2 > &tuple1, const Pair< U1, Nil > &tuple2)
 Equality comparison operator for tuples.
template<typename T1 , typename T2 , typename U1 >
bool Dune::operator!= (const Pair< T1, T2 > &tuple1, const Pair< U1, Nil > &tuple2)
 Inequality comparison operator for tuples.
template<typename T1 , typename T2 >
Pair< T1, T2 > Dune::makePair (const T1 &first, const T2 &second)
 Create a tuple and initialize it.
template<typename T1 , typename T2 >
std::ostream & Dune::operator<< (std::ostream &os, const Pair< T1, T2 > &pair)
 Print a pair or tuple.
template<typename T1 >
std::ostream & Dune::operator<< (std::ostream &os, const Pair< T1, Nil > &pair)
template<typename T1 , typename T2 >
std::istream & Dune::operator>> (std::istream &is, Pair< T1, T2 > &pair)
 Read a pair or tuple.
template<typename T1 >
std::istream & Dune::operator>> (std::istream &is, Pair< T1, Nil > &pair)
template<class T1 >
tuple< T1 & > Dune::tie (T1 &t1)
template<class T1 , class T2 >
tuple< T1 &, T2 & > Dune::tie (T1 &t1, T2 &t2)
template<class T1 , class T2 , class T3 >
tuple< T1 &, T2 &, T3 & > Dune::tie (T1 &t1, T2 &t2, T3 &t3)
template<class T1 , class T2 , class T3 , class T4 >
tuple< T1 &, T2 &, T3 &, T4 & > Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4)
template<class T1 , class T2 , class T3 , class T4 , class T5 >
tuple< T1 &, T2 &, T3 &, T4
&, T5 & > 
Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4, T5 &t5)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
tuple< T1 &, T2 &, T3 &, T4
&, T5 &, T6 & > 
Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4, T5 &t5, T6 &t6)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
tuple< T1 &, T2 &, T3 &, T4
&, T5 &, T6 &, T7 & > 
Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4, T5 &t5, T6 &t6, T7 &t7)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
tuple< T1 &, T2 &, T3 &, T4
&, T5 &, T6 &, T7 &, T8 & > 
Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
tuple< T1 &, T2 &, T3 &, T4
&, T5 &, T6 &, T7 &, T8 &, T9 & > 
Dune::tie (T1 &t1, T2 &t2, T3 &t3, T4 &t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8, T9 &t9)
template<class T1 >
tuple< T1 > Dune::make_tuple (const T1 &t1)
template<class T1 , class T2 >
tuple< T1, T2 > Dune::make_tuple (const T1 &t1, const T2 &t2)
template<class T1 , class T2 , class T3 >
tuple< T1, T2, T3 > Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3)
template<class T1 , class T2 , class T3 , class T4 >
tuple< T1, T2, T3, T4 > Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4)
template<class T1 , class T2 , class T3 , class T4 , class T5 >
tuple< T1, T2, T3, T4, T5 > Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
tuple< T1, T2, T3, T4, T5, T6 > Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5, const T6 &t6)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
tuple< T1, T2, T3, T4, T5, T6, T7 > Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5, const T6 &t6, const T7 &t7)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
tuple< T1, T2, T3, T4, T5, T6,
T7, T8 > 
Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5, const T6 &t6, const T7 &t7, const T8 &t8)
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
tuple< T1, T2, T3, T4, T5, T6,
T7, T8, T9 > 
Dune::make_tuple (const T1 &t1, const T2 &t2, const T3 &t3, const T4 &t4, const T5 &t5, const T6 &t6, const T7 &t7, const T8 &t8, const T9 &t9)

Detailed Description

Fallback implementation of the std::tuple class.

This a refined implementation of the approach defined in in the article "Tuples and multiple return values in C++" of Jaakko Järvi (Turku Centre of Computer Science, TUCS Technical Report No 249, March 1999, ISBN 952-12-0401-X, ISSN 1239-1891) available from the TUCS publications archive

Author:
Markus Blatt