C++ RTTI和LLVM RTTI使用方法和原理解析

您所在的位置:网站首页 vc的正确使用方法 C++ RTTI和LLVM RTTI使用方法和原理解析

C++ RTTI和LLVM RTTI使用方法和原理解析

2023-04-13 15:44| 来源: 网络整理| 查看: 265

本文主要内容为C++中RTTI的简单介绍和LLVM RTTI的使用方法、简单实现解析。

本文会先后讲解以下内容:

简单介绍C++中typeid和dynamic_cast两个关键字的基本使用和基本实现原理分析其性能和空间开销,引入LLVM为什么要自己实现RTTI而不是用标准实现详解LLVM RTTI的使用方法和超简单实现

本文中相关示例代码均可在以下仓库中找到:

1. C++标准RTTI

C++提供了typeid和dynamic_cast两个关键字来提供动态类型信息和动态类型转换,使用需要在在编译器选项中指定-rtti(clang和gcc都默认开启),关闭则可以设置选项-fno-rtti,其具体使用方法可以参考cppreference网站中的示例。

1.1 typeid

typeid使用示例:

#include #include #include struct Base {}; // non-polymorphic struct Derived : Base {}; struct Base2 { virtual void foo() {} }; // polymorphic struct Derived2 : Base2 {}; int main() { int myint = 50; std::string mystr = "string"; double *mydoubleptr = nullptr; std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3