5

即使使用 -fno-rtti 编译,它似乎在 GCC 和 Clang 中也能std::any 正常工作。

在查看 libc++ 源代码时,我发现他们只是使用了一个简单的技巧:

他们获取在任何类型上模板化的变量的地址,这就是他们获得唯一ID的方式。

但是这个代码只有在没有打开 RTTI 时才有效。

这让我想知道。为什么他们甚至首先使用 RTTI?为什么不总是使用这个解决方案?我不知道为什么typeid会比简单的指针(指向每个类型实例化的静态变量)比较快。

4

0 回答 0