开发者

typeinfo / typeid output

开发者 https://www.devze.com 2023-01-19 15:46 出处:网络
I\'m currently trying to debug a piece of simple code and wish to see how a specific variable type changes during the program.

I'm currently trying to debug a piece of simple code and wish to see how a specific variable type changes during the program.

I'm using the typeinfo header file so I can utilise typeid.name(). I'm aware that typeid.name() is compiler specific thus the output开发者_开发问答 might not be particularly helpful or standard.

I'm using GCC but I cannot find a list of the potential output despite searching, assuming a list of typeid output symbols exist. I don't want to do any sort of casting based on the output or manipulate any kind of data, just follow its type.

#include <iostream>
#include <typeinfo>

int main()
{ 
    int a = 10;
    cout << typeid(int).name() << endl;
}

Is there a symbol list anywhere?


I don't know if such a list exists, but you can make a small program to print them out:

#include <iostream>
#include <typeinfo>

#define PRINT_NAME(x) std::cout << #x << " - " << typeid(x).name() << '\n'

int main()
{
    PRINT_NAME(char);
    PRINT_NAME(signed char);
    PRINT_NAME(unsigned char);
    PRINT_NAME(short);
    PRINT_NAME(unsigned short);
    PRINT_NAME(int);
    PRINT_NAME(unsigned int);
    PRINT_NAME(long);
    PRINT_NAME(unsigned long);
    PRINT_NAME(float);
    PRINT_NAME(double);
    PRINT_NAME(long double);
    PRINT_NAME(char*);
    PRINT_NAME(const char*);
    //...
}
0

精彩评论

暂无评论...
验证码 换一张
取 消