Ex 2: N-uplet de valeurs de types différents. More...
#include <nuple.hh>
Public Types | |
typedef TList::head | val_type |
Le type de la première valeur du N-uplet. | |
typedef TList::tail | tail |
Public Member Functions | |
template<unsigned N> | |
type_list::GetType< TList, N > ::type & | at () |
Ex 4a: Accès à un élément du N-uplet. | |
Nuple< tail > & | operator<< (const val_type &t) |
Ex 4b: Remplissage du N-uplet. | |
Public Attributes | |
val_type | val |
La première valeur du N-uplet. |
Ex 2: N-uplet de valeurs de types différents.
Les types des valeurs du N-uplet sont spécifier par une liste de type. Un N-uplet est une sorte de liste statique, dont la tête stocke la première valeur et l'objet N-uplet est associé avec un autre objet N-uplet pour stocker les autres valeurs. Comme un N-uplet n'a pas de sens sans le N-uplet qui stocke la fin de la liste et que la durée de vie de ces classe est liée, il s'agit en fait d'une cotmposition, il est normal en C++ de l'implémenter via l'héritage.
TList | la liste des types du N-uplet |
Definition at line 29 of file nuple.hh.
typedef TList::tail my_lib::Nuple< TList >::tail |
typedef TList::head my_lib::Nuple< TList >::val_type |
type_list::GetType< TList, N >::type & my_lib::Nuple< TList >::at | ( | ) |
Nuple< typename TList::tail > & my_lib::Nuple< TList >::operator<< | ( | const val_type & | t | ) |
Ex 4b: Remplissage du N-uplet.
On surcharge l'opérateur << afin de pouvoir remplir simplement le N-uplet. On retourne une référence sur la suite du N-uplet pour pouvoir chaîner les opérateurs <<. Ce type de technique est généralement préféré aux fonctions ou méthode variadiques.
val_type my_lib::Nuple< TList >::val |