[newbie] Template avec nombre d'argument indéfinis

Le
TSalm
Bonjour,

Est-il possible de définir et d'exploiter des templates à nombre
illimités d'argument, et surtout comment ?

Petit détail, j'utilise le compilateur GCC.

D'avance merci,
TSalm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TSalm
Le #306734
On Fri, 04 May 2007 23:40:16 +0200, TSalm wrote:
Est-il possible de définir et d'exploiter des templates à nombre
illimités d'argument, et surtout comment ?



En fait, ce serait pour faire ce que fait n'importe quelle Base de
Donnée, c'est à dire stockées des données dans une table où on peut
ajouter/supprimer des colonnes de types différent, mais sans avoir à
mettre en oeuvre des connections avec une BDD ( c'est juste pour quelques
données temporaires).
Si vous avez une autre idée ...

TSalm

Loïc Joly
Le #306733
On Fri, 04 May 2007 23:40:16 +0200, TSalm wrote:

Est-il possible de définir et d'exploiter des templates à nombre
illimités d'argument, et surtout comment ?



Pas directement (même si c'est prévu dans les prochaines versions de la
norme). Ce qui s'en rapproche le plus, ce sont ce qui s'appèle des
typelist. Tu bosses à partir de template à 2 arguments, que tu imbriques.
Un truc genre :

class Fin {};

template <class T1, class T2>
class MonTemplate
{
};

MonTemplate<int, MonTemplate<int, MonTemplate<string, Fin> > >
troisColonnes;



En fait, ce serait pour faire ce que fait n'importe quelle Base de
Donnée, c'est à dire stockées des données dans une table où on peut
ajouter/supprimer des colonnes de types différent, mais sans avoir à
mettre en oeuvre des connections avec une BDD ( c'est juste pour quelques
données temporaires).
Si vous avez une autre idée ...


As-tu regardé boost::multi_index ?

--
Loïc


TSalm
Le #306731
On Sat, 05 May 2007 00:38:55 +0200, Loïc Joly wrote:

On Fri, 04 May 2007 23:40:16 +0200, TSalm wrote:

Est-il possible de définir et d'exploiter des templates à nombre
illimités d'argument, et surtout comment ?



Pas directement (même si c'est prévu dans les prochaines versions de la
norme). Ce qui s'en rapproche le plus, ce sont ce qui s'appèle des
typelist. Tu bosses à partir de template à 2 arguments, que tu imbriques.
Un truc genre :

class Fin {};

template <class T1, class T2>
class MonTemplate
{
};

MonTemplate<int, MonTemplate<int, MonTemplate<string, Fin> > >
troisColonnes;



En fait, ce serait pour faire ce que fait n'importe quelle Base de
Donnée, c'est à dire stockées des données dans une table où on peut
ajouter/supprimer des colonnes de types différent, mais sans avoir à
mettre en oeuvre des connections avec une BDD ( c'est juste pour quelques
données temporaires).
Si vous avez une autre idée ...


As-tu regardé boost::multi_index ?


merci beaucoup !



Publicité
Poster une réponse
Anonyme