Duplicar posible:
Is there a simple script to convert C++ enum to string?Enumeración de cadena C++
que comúnmente se encuentran Necesito convertir una enumeración a una cadena en C++
siempre termino haciendo:
enum Enum{ Banana, Orange, Apple } ;
char * getTextForEnum(int enumVal)
{
switch(enumVal)
{
case Enum::Banana:
return "bananas & monkeys";
case Enum::Orange:
return "Round and orange";
case Enum::Apple:
return "APPLE" ;
default:
return "Not recognized..";
}
}
¿Hay un idioma mejor o reconocido para hacer esto?
Quizás usar 'std :: mapa' en lugar de la enumeración y el interruptor ? Con un poco de envoltura en un objeto puede hacerlo lo suficientemente inteligente como para ser reutilizable como un buscador de código de error y controlador para todas sus aplicaciones. –
AJG85
Una mejora es omitir la cláusula 'predeterminado:' mientras se sube el nivel de advertencia en su compilador y se tratan las advertencias como errores. De esta forma, si alguna vez extiende la lista de enumeraciones, el compilador advertirá y fallará en su declaración de cambio, recordándole que amplíe el cambio también. Algunas personas dicen que siempre deberías tener un incumplimiento, pero creo que este es un escenario en el que la falta de ayuda puede ayudarte. –