https://blog.quarkslab.com/visual-c-rtti-inspection.html
http://refspecs.linux-foundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/cxxclasses.html
https://kahncode.com/2019/09/24/c-tricks-fast-rtti-and-dynamic-cast/
http://mertboru.com/?p=4035
Run-Time Type Information is available only for classes that are polymorphic, which means they have at least one virtual method. In practice, this is not a limitation because base classes must have a virtual destructor to allow objects of derived classes to perform proper cleanup if they are deleted from a base pointer.
https://docs.unrealengine.com/en-US/ProductionPipelines/BuildTools/UnrealHeaderTool/index.html
UnrealHeaderTool (UHT) is a custom parsing and code-generation tool that supports the UObject system. Code compilation happens in two phases:
-
UHT is invoked, which parses the C++ headers for Unreal-related class metadata and generates custom code to implement the various UObject-related features.
-
The normal C++ compiler is invoked to compile the results.
https://docs.unrealengine.com/en-US/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Objects/index.html