macro qui crée enum et tableau
Bonjour,
J'ai trois structures :
Code:
1 2 3
| struct Cat { const static unsigned mask = 1; };
struct Dog { const static unsigned mask = 2; };
struct Cow { const static unsigned mask = 4; }; |
J'aimerais créer une macro qui prendrait des types en argument et qui :
- 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:
1 2 3 4 5
| struct
{
enum {Dog,Cow,Cat};
unsigned tab[3] = {2,4,1};
} test; |
Pour l'instant j'ai écrit la macro suivante :
Code:
1 2 3 4 5 6
| #define macro(Ts...) \
struct \
{ \
enum { Ts,count }; \
unsigned tab[count] = {Ts::mask}; \
} test; |
C'est bon pour l'enum, mais pour tab c'est pas encore ça :aie: il doit y avoir un problème d'expanded pack quelque part, mais je ne sais pas comment résoudre ça !
Des suggestions ? :)