【发布时间】:2013-02-19 03:18:30
【问题描述】:
我正在阅读Itanium ABI 上面的内容
当且仅当指针相等时,两个 type_info 指针才指向等价的类型描述。一个实现必须满足这个约束,例如通过使用符号抢占、COMDAT 部分或其他机制。
有谁知道在使用动态加载库时如何在流行平台(例如使用 GCC 和 GNU binutils 的 Linux)上实际实现这一点的血腥细节?它有多可靠?
另外,我的印象是,MSVC 中的typeid 比较是(曾经?)使用运行时字符串比较对错位符号名称实现的,因为不能保证满足这一要求。这仍然是它的完成方式吗?是否存在阻止 MSVC 使用与 Itanium ABI 平台相同的技术的技术平台限制?
编辑 还有一个问题:跨模块边界(在任一 ABI 中)捕获异常是否也依赖于 RTTI 信息,或者除了运行时 dynamic_casts 的等价物之外,是否还涉及另一种机制?
【问题讨论】:
标签: c++ visual-c++ gcc rtti abi