Bonjour
J'ai une template struct que je spécialise, dans le cas où aucun argument n'est passé en paramètre du template :
Quand je déclare les différentes versions dans mon main, ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template <typename...Ts> struct Struct { int a; }; template <> struct Struct<> { int b; };
Mais je ne trouve pas ça très beau, j'aimerais pouvoir écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Struct<int,char> a; Struct<> b;
Je me disais qu'en passant par un alias je pourrais faire ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Struct<int,char> a; Struct b;
Mais en fait non X) Pas moyen non plus de faire la même chose en déclarant deux struct : l'une template et l'autre non. Pourtant, j'aimerais vraiment conserver le même nom ! Et je vais pas passer par une macro, quand même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 template <typename...Ts> using TMP = Struct<Ts...>; using TMP = Struct<>;
Quelqu'un aurait une solution ?
Merci !
Partager