Merci pour ta réponse
C'est ce que je fais déjà, mais effectivement, je pourrai le faire avec des MACRO... ça simplifierait l'ajout de nouvelles enum...
En fait, mon programme importe des données d'une base de donnée, qui fonctionne biensûr avec ses propres types indexés via des int.
Par exemple, j'ai des champs LINESTYLE = 1,2,3... suivant qu'ils soient Solid, Dash,Dot,...
Etant donné que je veux afficher ces données, je souhaite donc convertir ces int qui représentent finalement un concept plutôt qu'une valeur, ne serait-ce que pour derrière, travailler avec des switch et avoir un code lisible.
Je pourrai aussi passer par des
Code C/C++ :
#define LS_SOLID 1
#define LS_DASH 2
...
C'est une autre solution mais qui est loin d'être la meilleure selon moi et ne permet d'utiliser proprement des switch couvrant (ou non, mais dans ce cas il y facilement moyen de le savoir puisqu'il y a une message à la compilation s'il n'y a pas de "default") la totalité des cas possibles.
Derrière j'utilise Qt, j'ai deux choix, soit je convertis directement mes int en enum de Qt, soit je convertis mes int dans une Enum avec des noms collant directement à ceux de la base (lisibilité du code et maintenance), Enum que je transtyperai ensuite en Enum Qt au moment de l'affichage... de toutes les manières, je suis obligé de convertir mes int en Enum proprement, en se souvenant que les valeurs des int et différentes Enum ne sont pas forcément les mêmes.
DataBase(LINESTYLE=1) = DB_LINESTYLE::SOLID != Qt::SolidPattern... => conversion
Voilà le pourquoi, maintenant, le comment... j'espérai qu'il y ait une solution pour faire ça implicitement.. à moins de créer une classe à la place de chaque enum et de surcharger l'
opérateur=(int& i)... j'ai cru voir le
int(int& i) aussi...
L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"