其他分享
首页 > 其他分享> > __cxa_demangle

__cxa_demangle

作者:互联网

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;
}

标签:__,demangle,int,char,cxa,include
来源: https://www.cnblogs.com/xiaojianliu/p/14690960.html