Asignación de valores de enumeración a cadenas en C ++

¿Hay una manera de, en tiempo de ejecución, asignar el valor de una enumeración al nombre? (Estoy construyendo con GCC).

Sé que GDB puede hacerlo y estoy dispuesto a usar algo que no se pueda portar y mucks con datos de depuración.

Editar: Estoy buscando una solución que no requiera modificar la declaración de enumeración original ni copiar a mano todos los valores en una función de mapeo. Ya sé cómo hacer ambas cosas.

Eficazmente; Quiero una función que haga lo que GDB hace cuando da formato a los valores de enumeración en tiempo de ejecución.

Respuestas a la pregunta(3)

Su respuesta a la pregunta