g++ и typeid
Тестовая программка:
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int c;
char* s1;
char s2[10];
enum Lang {rus, eng, none};
Lang lan = rus;
cout << typeid(c).name() << endl;
cout << typeid(&c).name() << endl;
cout << typeid(s1).name() << endl;
cout << typeid(&s1).name() << endl;
cout << typeid(s2).name() << endl;
cout << typeid(&s2).name() << endl;
cout << typeid(lan).name() << endl;
cout << typeid(&lan).name() << endl;
return 0;
}
Компилим, запускаем, вывод:
i
Pi
Pc
PPc
A10_c
PA10_c
Z4mainE4Lang
PZ4mainE4Lang
Я думал, будет что-то типа int, char и т.д. Это фишка g++ или я что-то забыл? Как понять эти загадочные записи, особенно для enum'a? Где про это можно почитать?
p.s. пробовал на версиях 4.1.1 и 3.4.6.
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int c;
char* s1;
char s2[10];
enum Lang {rus, eng, none};
Lang lan = rus;
cout << typeid(c).name() << endl;
cout << typeid(&c).name() << endl;
cout << typeid(s1).name() << endl;
cout << typeid(&s1).name() << endl;
cout << typeid(s2).name() << endl;
cout << typeid(&s2).name() << endl;
cout << typeid(lan).name() << endl;
cout << typeid(&lan).name() << endl;
return 0;
}
Компилим, запускаем, вывод:
i
Pi
Pc
PPc
A10_c
PA10_c
Z4mainE4Lang
PZ4mainE4Lang
Я думал, будет что-то типа int, char и т.д. Это фишка g++ или я что-то забыл? Как понять эти загадочные записи, особенно для enum'a? Где про это можно почитать?
p.s. пробовал на версиях 4.1.1 и 3.4.6.