Что значит "x", возвращаемый typeid.name() в С++?

Хотел бы уточнить, что означает "x". Typeid.name() возвращает "x", когда переменная типа long long. К сожалению, у меня выводится только первая буква типа переменной, т.е. если переменная типа int, то выведется "i", если char, то "c", из-за чего не до конца понятно, что выводится.


Ответы (1 шт):

Автор решения: Harry

Стандарт не оговаривает, какие конкретно имена выводятся для различных типов при использовании typeid.

У каждого компилятора своя система именования. Вот такая простенькая программка

int main() {
    cout << typeid(char).name() << endl;
    cout << typeid(unsigned char *).name() << endl;
    cout << typeid(main).name() << endl;
}

в VC++ выведет

char
unsigned char * __ptr64
int __cdecl(void)

а в G++

c
Ph
FivE

Так что лучшее, что можно вам посоветовать — обратиться к документации на ваш конкретный компилятор...

→ Ссылка