Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
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

3 réponses

Avatar
TSalm
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

Avatar
Loïc Joly
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


Avatar
TSalm
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 !