Bonjour,
J'ai trois structures :
J'aimerais créer une macro qui prendrait des types en argument et qui :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 struct Cat { const static unsigned mask = 1; }; struct Dog { const static unsigned mask = 2; }; struct Cow { const static unsigned mask = 4; };
- en ferait un enum
- créerait un tableau avec les maks des types
Rien compris ? X) Un petit exemple sera plus parlant. J'aimerais pouvoir écrire :
Ceci me créerait une structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part macro(Dog,Cow,Cat)
Pour l'instant j'ai écrit la macro suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct { enum {Dog,Cow,Cat}; unsigned tab[3] = {2,4,1}; } test;
C'est bon pour l'enum, mais pour tab c'est pas encore ça il doit y avoir un problème d'expanded pack quelque part, mais je ne sais pas comment résoudre ça !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #define macro(Ts...) \ struct \ { \ enum { Ts,count }; \ unsigned tab[count] = {Ts::mask}; \ } test;
Des suggestions ?
Partager