码迷,mamicode.com
首页 > 其他好文 > 详细

__cxa_demangle

时间:2021-04-23 12:05:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:length   type   操作   namespace   size   操作符   end   turn   ret   

typeid操作符可以用来获取一个类型/表达式的名称:

#include <iostream>
#include <typeinfo>

using namespace std;

int main()
{
    std::cout << typeid(int).name() << std::endl;
    return 0;
}

输出/:

//@ msvc
int
//@ gcc
i

想在 gcc 里得到和 msvc 差不多显示效果的方法也是有的,那就是使用 __cxa_demangle

char* abi::__cxa_demangle (const char * mangled_name, char * output_buffer, size_t * length, int * status)
#include <iostream>
#include <typeinfo>
#include <cxxabi.h>
#include <malloc.h>

using namespace std;

int main()
{
    char *name = abi::__cxa_demangle(typeid(int).name(), NULL, NULL, NULL);
    std::cout << name << std::endl;
    free(name);
    return 0;
}

__cxa_demangle

标签:length   type   操作   namespace   size   操作符   end   turn   ret   

原文地址:https://www.cnblogs.com/xiaojianliu/p/14690960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!