为了账号安全,请及时绑定邮箱和手机立即绑定

解开std :: type_info :: name的结果

解开std :: type_info :: name的结果

C++
郎朗坤 2019-08-02 13:52:23
解开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


查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 1149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信