2010-01-18 9 views
6

Al usar gcc, cuando solicito un tipo de objeto/variable usando typeid, obtengo un resultado diferente del método type_info :: name de lo que esperaría obtener en Windows. Busqué en Google un poco, y descubrí que los nombres de RTTI son específicos de la implementación.¿Puedo deshabilitar los nombres RTTI de GCC?

El problema es que quiero obtener el nombre de un tipo tal como se devolvería en Windows. ¿Hay una forma fácil de hacer esto?

Respuesta

1

C++ los nombres de las funciones realmente incluyen toda la información del tipo de retorno y argumento, así como la clase y el nombre del método. Cuando se compilan, se "trituran" en un formulario estándar (estándar para cada compilador) que puede actuar como un símbolo de ensamblador e incluye toda la información del tipo.

Necesita ejecutar una función o programa para revertir este proceso, llamado , demandado.

intente ejecutar

c++filt myoutput.txt 

en la salida de la función. Este exige el nombre real del símbolo en una forma legible por humanos.

Cuestiones relacionadas