Я проверял некоторые типы переменных и получил некоторые запутанные результаты:Понимание вывода TypeID имя()()
#include <iostream>
#include <typeinfo>
using namespace std;
int main(void) {
int number = 5;
int* pointer = &number;
cout << typeid(number).name() << endl; // i
cout << typeid(pointer).name() << endl; // Pi
cout << typeid(&pointer).name() << endl; // PPi
return 0;
}
i
означает int
, но что Pi
и PPi
означают? Pointer int
?
Они ничего не значат с точки зрения стандарта C++. Я подозреваю, что вы используете GCC, который использует эту систему для типов имен с 'typeid'. Если вы посмотрите на что-то вроде MSVC, они будут разными. – chris
http://mentorembedded.github.io/cxx-abi/abi.html и предположим, что вы используете gcc: http://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html –