博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打印C++变量类型示例(g++)
阅读量:6244 次
发布时间:2019-06-22

本文共 852 字,大约阅读时间需要 2 分钟。

   g++编译器打印的类型名比较晦涩,vc编译器打印的类型名很清晰,参考。下面给出一个用g++打印清晰类型名的一个示例。

1、源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <string>
#include <iostream>
#include <typeinfo>
using 
namespace 
std;
#include <cxxabi.h>
const 
string GetClearName(
const 
char
* name)
{
    
int 
status = -1;
    
char
* clearName = abi::__cxa_demangle(name, NULL, NULL, &status);
    
const 
char
const 
demangledName = (status==0) ? clearName : name;
    
string ret_val(demangledName);
    
free
(clearName);
    
return 
ret_val;
}
int 
main()
{
    
int 
num = 3;
    
cout << 
"num => "
         
<< 
typeid
(num).name()
         
<< 
" => "
         
<< GetClearName(
typeid
(num).name())
         
<< endl;
    
cout << 
"double => "
         
<< 
typeid
(
double
).name()
         
<< 
" => "
         
<< GetClearName(
typeid
(
double
).name())
         
<< endl;
    
return 
0;
}

2、截图

***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1241224如需转载请自行联系原作者

RQSLT

你可能感兴趣的文章
三星发布Exynos 7872移动处理器 定位中端市场
查看>>
面试题大全
查看>>
设计模式系列-命令模式
查看>>
Java中的流
查看>>
如何启动或关闭oracle的归档(ARCHIVELOG)模式
查看>>
[LintCode] Paint Fence 粉刷篱笆
查看>>
mysql中实现类似oracle中的nextval函数
查看>>
使用按键精灵+umdh定位内存泄露问题的方式
查看>>
RecyclerView实现ViewPager效果
查看>>
Bandicam视频录制技巧总结+小丸工具箱压缩视频解决视频体积问题
查看>>
JSP实现用户登录样例
查看>>
搞笑的W3C和M$对DOM中属性命名
查看>>
[Struts]让Dreamweaver显示Struts标签的插件
查看>>
便利的html5 之 required、number 、pattern
查看>>
[LeetCode] Find K Pairs with Smallest Sums 找和最小的K对数字
查看>>
VC6.0 C++ 如何调用微软windows系统SDK 语音API
查看>>
Python 3.5 RuntimeError: can&#39;t start new thread
查看>>
POJ 1659 Frogs&#39; Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
查看>>
数字统计问题
查看>>
Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager
查看>>