c++ - C++过滤器的使用方法

标签 c++ c++filt

<分区>

Possible Duplicate:
Can I ungarble GCC's RTTI names?

我已经开始将 code::blocks 与 gcc 一起使用(只是再也受不了 VS2010 了),尽管我对所有方面都很满意,但在 gcc 中绝对做得不好的一件事是,当我想使用时typeid 我得到的不是确切的类型名称,而是一些符号符号(为什么?为什么他们不能使用类型名称?)无论如何,我听说 c++filt 可以帮助解决这类问题,但我不知道现在不知道如何使用它(或安装它 - 我必须下载它吗?)。

最佳答案

typeid 返回对 std::type_info 实例的引用,因此我假设您正在使用它的 name() 方法。

要回答关于为什么没有获得“准确”类型名称的问题:name() 返回一个实现定义的字符串,因此您不应依赖它具有任何意义。特别是,它甚至不必是类型唯一的。

您应该直接使用==!=.before() 比较std::type_info 对象>,如果你有 C++11 支持,可能与 .hash_code() 结合使用。

关于c++ - C++过滤器的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7858890/

相关文章:

c++ - 在 2D 纹理之上绘制基元 ( GL_QUADS ) - 没有四边形渲染,纹理颜色改变

c++filt 不 demangle typeid 名称

c++ - 三重与号 `&&&` 在 C++ 中代表什么?

c++ - 为什么要用树状数据结构来表示文字冒险游戏中的数据?

c++ - 让 shared_ptr 拥有现有指针的更简单方法

c++ - 我的 c++filt 似乎不能正常工作,没有输出变化

macos - 在 Mac 10.5 上解开 C++ 名称

c++ - public char * 类/结构的成员无法访问?!?!?!po

c++ - 有向循环图中两个节点之间的路径数