Transformation string - type énuméré

zaraki21 Messages postés 31 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 22 avril 2011 - 22 juil. 2010 à 18:07
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 22 juil. 2010 à 18:51
Bonjour,

je travaille actuellement sur un projet en C/C++ ou je dois faire plusieurs la même manipulation à savoir à partir d'une "std::string" trouver l'équivalent dans une énumération définie au préalable.
Par exemple : j'ai un type énuméré color{RED =0, BLUE=1} et à partir de celui-ci, je récupère la valeur "RED" à partir d'une "std::string", résultat d'une autre fonction, qui vaut "RED".
Étant donné que je fais cette manipulation souvent avec différentes énumérations, je voudrais savoir si quelqu'un aurait une idée pour faire cette "transformation" à l'aide d'une fonction générique quel que soit le type énuméré.
Merci pour vos réponses.

2 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
22 juil. 2010 à 18:49
Non, ce n'est pas possible.
La seule solution actuelle est de passer par plein de macro et de définir ton enum à l'aide de macros bien compliquées...

Un excellent article sur le sujet:
http://www.codeproject.com/KB/cpp/C___enums_to_strings.aspx

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
22 juil. 2010 à 18:51
Un autre lien excellent (mais un peu plus avancé):
http://www.codeproject.com/KB/cpp/ImprovedEnum.aspx

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Rejoignez-nous