C++ RTTI和LLVM RTTI使用方法和原理解析 |
您所在的位置:网站首页 › vc的正确使用方法 › C++ RTTI和LLVM RTTI使用方法和原理解析 |
本文主要内容为C++中RTTI的简单介绍和LLVM RTTI的使用方法、简单实现解析。 本文会先后讲解以下内容: 简单介绍C++中typeid和dynamic_cast两个关键字的基本使用和基本实现原理分析其性能和空间开销,引入LLVM为什么要自己实现RTTI而不是用标准实现详解LLVM RTTI的使用方法和超简单实现本文中相关示例代码均可在以下仓库中找到: 1. C++标准RTTIC++提供了typeid和dynamic_cast两个关键字来提供动态类型信息和动态类型转换,使用需要在在编译器选项中指定-rtti(clang和gcc都默认开启),关闭则可以设置选项-fno-rtti,其具体使用方法可以参考cppreference网站中的示例。 1.1 typeidtypeid使用示例: #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 |