虽然C++11引入了RTTI、Metaprogramming 等技术,但C++在Reflection编程方面依旧功能有限。在社区上,RTTR则提供了一套C++编写的反射库,补充了C++在Reflection方面的缺陷。
零、环境
操作系统 | Windows 11 |
Visual Studio | Visual Studio Community 2022 |
CMake | CMake 3.24.2 |
Doxygen | Doxygen-1.9.8 |
一、下载源码
从GitHub拉取RTTR代码:
git clone https://github.com/rttrorg/rttr.git
二、编译
按照下表配置CMake,并完成构建与生成,
Where is the source code | Windows 11 |
Where to build the binaries | Visual Studio Community 2022 |
CMAKE_INSTALL_PREFIX | CMake 3.24.2 |
打开rttr.sln,构建"ALL_BUILD"完成RTTR编译;构建"INSTALL"完成RTTR安装。
网络资料
Reflectionhttps://en.wikipedia.org/wiki/Reflection_%28computer_programming%29
The C++ Extensions for Reflection https://en.cppreference.com/w/cpp/experimental/reflect
RTTRhttps://www.rttr.org/QMetaObjecthttps://doc.qt.io/qt-5/qmetaobject.html
An Introduction to Reflection in C++https://blog.csdn.net/qq_26221775/article/details/138768568?spm=1001.2014.3001.5501
FreeCAD: C++ Generic Factory Method inteface advicehttps://forum.freecad.org/viewtopic.php?p=24221&hilit=BaseClass#p24221