Puoi fare così:
codice:
/*
$ g++ --version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
$ g++ -Wall -ansi -pedantic -Wextra -Wconversion main.cpp
$ ./a.out
eStatusBad
eStatusGood
eStatusUnknown
*/
#include <iostream>
typedef enum{
eStatusBad = 0,
eStatusGood,
eStatusUnknown
} EStatus;
const char * StatusToString (const EStatus theStatus){
const char * kVect []={
"eStatusBad",
"eStatusGood",
"eStatusUnknown"
};
return kVect [static_cast <int> (theStatus)];
}
int main (void){
std::cout << StatusToString (eStatusBad) << std::endl;
std::cout << StatusToString (eStatusGood) << std::endl;
std::cout << StatusToString (eStatusUnknown) << std::endl;
return 0;
}
ma chiaro, devi mantenere sincronizzate la enum e la StatusToString.