2009-02-03 5 views

Répondre

0

Vous aurez probablement besoin d'utiliser une structure de données std :: map ou hash_map.

+0

ou boost/TR1 unordered_map (au lieu de hash_map non standard) – Reunanen

0
#include <EnumString.h> 

de http://codeproject.com/Articles/42035/Enum-to-String-and-Vice-Versa-in-C et après

enum FORM { 
    F_NONE = 0, 
    F_BOX, 
    F_CUBE, 
    F_SPHERE, 
}; 

insert

Begin_Enum_String(FORM) 
{ 
    Enum_String(F_NONE); 
    Enum_String(F_BOX); 
    Enum_String(F_CUBE); 
    Enum_String(F_SPHERE); 
} 
End_Enum_String; 

de fin de travail, si les valeurs dans ENUM ne sont pas doublon .

Exemple dans le code

enum FORM f = ... 
const std::string& str = EnumString<FORM>::From(f); 

et vice versa

assert(EnumString<FORM>::To(f, str));