如果我在C++中有多个链接的C++静态链接库,如果它们使用不同的启用/禁用运行时间值进行编译,是否可以共享(传入和传出函数)类对象类型信息(RTTI)?在C++中混合使用RTTI标志
- 编辑: 感谢您的回复,我担心的具体事情是 1.是否启用RTTI更改静态(非多态类型)的sizeof行为?
and 2.如果我在支持RTTI的库中创建类并将其传递给另一个不支持RTTI的库,那么虚拟方法是否正常工作。 (反之亦然)
and lastly 3.如果我在支持RTTI的库中创建类,我希望能够使用dynamic_cast,如果我将该对象传递给启用了非RTTI的库,可以我仍然使用那的对象。 ......我不会假设,反正这似乎是一个坏主意......我只是好奇。
这里没有其他人想到的优秀点,特别是有关填充的问题取决于编译器设置。 – Elemental 2009-09-29 16:00:33
@Loki Astari:是否暗示如果我使用.so或.dll中的对象(禁用RTTI进行编译),我将无法使用dynamic_cast,也不能为该对象使用typeid。或者更糟糕的是,ABI不正确,所以程序不兼容(可能是崩溃等)。 – 2012-09-12 00:07:55
@ Shao-ChuanWang:潜在的。这一切都取决于你的编译器。为了安全起见,所有对象必须使用完全相同的标志进行编译。 – 2012-09-12 00:30:57