当前位置:  开发笔记 > 编程语言 > 正文

typeinfo/typeid输出

如何解决《typeinfo/typeid输出》经验,为你挑选了1个好方法。

我目前正在尝试调试一段简单的代码,并希望看到特定的变量类型在程序中如何变化.

我正在使用typeinfo头文件,所以我可以使用typeid.name().我知道typeid.name()是特定于编译器的,因此输出可能不是特别有用或标准.

GCC假设存在一个typeid输出符号列表,我正在使用但是我找不到尽管搜索的潜在输出列表.我不想根据输出进行任何类型的转换或操纵任何类型的数据,只需按照其类型.

#include 
#include 

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

在任何地方都有符号列表吗?



1> UncleBens..:

我不知道这样的列表是否存在,但你可以创建一个小程序来打印它们:

#include 
#include 

#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*);
    //...
}


`template void PRINT_NAME(){std :: cout << ...}`
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有