LLVM代码中的RTTI替换


文档摘要

我们将从LLVM代码中的RTTI替换开始,并讨论其实现方式。然后,继续讨论基本容器和智能指针。最后,将探讨一些用于表示token位置的重要类,以及如何在Clang中实现诊断。稍后,在第4.6节"Clang插件项目"中,将使用这些类中的某些类在测试项目中。 LLVM由于性能问题而避免使用RTTI。LLVM引入了一些辅助函数,这些函数替换了RTTI对应物,允许从一个类型转换到另一个类型。基本函数如下: llvm::isa\ 类似于Java的instanceof运算符,根据测试对象是否属于测试类而返回true或false。 llvm::cast\ :当确定对象是指定的派生类型时,使用此强制转换运算符。如果转换失败(即对象不是预期类型),llvm::cast将终止程序。


发布者: 作者: 转发
评论区 (0)
U