empecher la compilation de façon conditionnelle
Bonjour.
Dans mon code, j'ai 2 typedef enum. un contient X éléments, et le second X+1.
Exempl:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
typedef enum
{
toto1=0,
toto2,
toto3,
num_toto
}Ttoto;
typedef enum
{
tata1=0,
tata2,
tata3,
tata4,
num_tata
}Ttata; |
Et tenez-vous bien, il FAUT que le deuxième contienne exactement 1 élément de plus que le premier. Sinon, ça va compiler, ça va s'executer, mais pas correctement!
Ce que je voudrais, c'est que si un jour quelqu'un s'amuse à rajouter un toto4, ça ne compile plus si il oublie de rajouter un tata5!
un truc du genre
Code:
1 2 3 4
|
#if ( num_tata != (num_toto +1) )
#error Ttata should contain 1 element more than Ttoto
#endif |
le problème c'est que num_tata et num_toto ne sont pas connu à la pré-compilation!
Existe-t'il un moyen simple et efficace de faire ça?
merci
Biosox