提问人:Dave 提问时间:10/23/2023 更新时间:10/23/2023 访问量:46
GCC 何时在不同的 DSO 中提供不同的 typeid?
When does GCC give different typeids in different DSOs?
问:
使用相同版本的 GCC/Clang,有没有办法确保在两个不同的 DSO 中为同一类型提供不同的结果,这样和/或跨 DSO 边界的异常将失败?typeid
dynamic_cast
catch
令人沮丧的是,我见过这样的情况:在跨 DSO 边界抛出异常时未捕获异常,我必须添加到异常类才能使其工作。但我不记得在哪里或在什么情况下。现在我无法在玩具示例中重现它! __attribute__((visibility("default")))
我一直在尝试提出一个包含两个链接库(或库和可执行文件)的示例,这两个库都使用 编译,并且都使用相同的标头定义一些内联多态 () 类。-fvisibility=hidden
#include
virtual
但就我而言,在编译器资源管理器中四处使用工具,我似乎无法打破它。似乎在两个 DSO 中评估相同(例如具有相同),因此 s 和 ing 例外在 DSO 中起作用。type_info
.hash_code()
dynamic_cast
catch
谁能给出一些提示,说明在什么情况下这实际上会失败?
答: 暂无答案
评论