Cómo convertir un enum a string en C++ moderno (C++17/C++20)
¡Hola, colegas! Estoy escribiendo un programa en C++17 y me encontré con un problema: necesito mostrar los valores de las enumeraciones (enum) en un formato legible, pero las herramientas estándar de C++ no proporcionan una forma directa de convertir un enum a string.
Aquí hay un ejemplo de mi código:
```cpp
enum class Color {
Red,
Green,
Blue,
Yellow
};
int main() {
Color c = Color::Green;
// Quiero mostrar "Green", pero solo obtengo un número
std::cout << static_cast(c); // Muestra 1
return 0;
}
```
En mi problema real, la enumeración contiene alrededor de 20 valores, y quiero usarla para logging e interfaz de usuario. Por ahora escribí un enorme switch-case, pero es horrible — cada vez que agrego un nuevo valor, tengo que modificar el código en 5 lugares.
Sé que en C++ no hay reflexión como en Java o C#, pero tal vez haya alguna forma moderna de hacerlo elegantemente. He oído sobre macros, Boost.Preprocessor, magia de templates e incluso sobre C++20 con sus concepts. Pero soy principiante y est...
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Optimización del rendimiento de aplicaciones Java: métodos prácticos y consejos