关于gcc输出typeid完整名的方法

这是我之前的文章:
https://www.cnblogs.com/jisuanjizhishizatan/p/16149500.html

对于typeid,可以使用如下的方法输出它的名字,本质上name()方法返回的是一个string类型的字符串。

cout<<typeid(变量名).name<<endl;

在不同的环境中,输出的是不同的结果。对于VC之类的编译器,输出的是完整名字。在部分编译器中,输出的只是单独的字母。

如,只输出了i。

对于如何输出完整名的方法,我也在网上进行了简单搜索,最终找到了cxxabi.h中的一个函数:

cout<<abi::__cxa_demangle(typeid(变量名).name(),0,0,0)<<endl;

这是测试代码,对于函数指针的输出:

posted @ 2022-04-23 15:36  计算机知识杂谈  阅读(270)  评论(0编辑  收藏  举报