解开std :: type_info :: name的结果我目前正在研究一些日志代码,它们应该 - 除其他外 - 打印有关调用函数的信息。这应该相对容易,标准C ++有一个type_info类。它包含typeid'd类/函数/ etc的名称。但它被破坏了。它不是很有用。即typeid(std::vector<int>).name()回归St6vectorIiSaIiEE。有没有办法从中产生有用的东西?就像std::vector<int>上面的例子一样。如果它只适用于非模板类,那也没关系。该解决方案应该适用于gcc,但如果我可以移植它会更好。这是为了记录所以它不是那么重要,它不能被关闭,但它应该有助于调试。
3 回答
HUH函数
TA贡献1836条经验 获得超4个赞
这就是我们使用的。HAVE_CXA_DEMANGLE仅在可用时设置(仅限最新版本的GCC)。
#ifdef HAVE_CXA_DEMANGLEconst char* demangle(const char* name){ char buf[1024]; unsigned int size=1024; int status; char* res = abi::__cxa_demangle (name, buf, &size, &status); return res; }#elseconst char* demangle(const char* name){ return name;}#endif
- 3 回答
- 0 关注
- 1149 浏览
添加回答
举报
0/150
提交
取消