我已经开始使用带有gcc的code :: blocks(再也无法忍受VS2010了)虽然我对所有人都很满意,但有一件事在gcc中肯定不是很好,当我想要使用时typeid我得到的不是确切的类型名称,而是一些符号表示法(为什么?为什么不能使用类型名称?)无论如何,我听说c ++ filt可以帮助解决这类问题,但我不知道现在如何使用它(或安装它 - 我必须下载吗?)。
答案 0 :(得分:2)
typeid
返回对std::type_info
实例的引用,因此我假设您正在使用其name()
方法。
回答你关于为什么没有得到“确切”类型名称的问题:name()
返回一个实现定义的字符串,所以你不应该依赖它有任何意义。特别是,它甚至不必是该类型的唯一。
如果您有C ++ 11支持,则应直接使用std::type_info
,==
或!=
对.before()
个对象进行比较,可能与.hash_code()
组合。< / p>