NanoRtti
A customized RTTI library
Install / Use
/learn @gongminmin/NanoRttiREADME
NanoRtti
The NanoRtti library provides customized run-time type information (RTTI) support. It can provide the RTTI ability on specific classes when the compiler one is turned off. It's cross platform, doesn't have 3rd party dependency. And the core method it uses is stable across the binary modules.
Example
Add the NANO_RTTI_REGISTER_RUNTIME_CLASS to the public section of classes that need RTTI. Its parameters are base classes. Here is an example.
class Base
{
public:
NANO_RTTI_REGISTER_RUNTIME_CLASS();
virtual ~Base(){};
};
class Derived : public Base
{
public:
NANO_RTTI_REGISTER_RUNTIME_CLASS(Base);
};
Now you can use DynCast as a drop-in replacement of dynamic_cast, or TypeId<T>() to get the type info of a type.
Base* pb = new Derived;
Derived* pd = DynCast<Derived*>(pb);
...
TypeInfo ty = TypeId<Derived>();
...
License
NanoRtti is distributed under the terms of MIT license. See LICENSE for details.
