标签: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;
}
标签:length type 操作 namespace size 操作符 end turn ret
原文地址:https://www.cnblogs.com/xiaojianliu/p/14690960.html