Clarisse 5.0 SP8 SDK
5.0.5.8.0
|
Macros to declare and implement CoreClassInfo RTTI API. More...
Macros | |
#define | DECLARE_CLASS |
#define | DECLARE_POLYMORPHIC_BASE_CLASS |
#define | DECLARE_POLYMORPHIC_CLASS |
#define | IMPLEMENT_CLASS(class_name, base_class_name) |
#define | IMPLEMENT_BASE_CLASS(class_name) |
#define | IMPLEMENT_TEMPLATE_CLASS(class_name, base_class_name, template_type) |
#define | SPECIALIZE_TEMPLATE_CLASS(class_name, type_name) |
Macros to declare and implement CoreClassInfo RTTI API.
#define DECLARE_CLASS |
Declare a class that does not inherit from CoreBaseObject, and is not meant to be inherited. This will declare a static class_info
method and an inline non-virtual get_class_info
method.
This is used for Clarisse's RTTI system. You basically just have to use this macro (or DECLARE_POLYMORPHIC_BASE_CLASS or DECLARE_POLYMORPHIC_CLASS, depending on the class you want to support) in the class declaration.
#define DECLARE_POLYMORPHIC_BASE_CLASS |
Declare a class that does not inherit from CoreBaseObject and is meant to be inherited. It does the same as DECLARE_CLASS but the get_class_info
method is marked as virtual. Classes that inherit from this one will need to use DECLARE_POLYMORPHIC_CLASS
#define DECLARE_POLYMORPHIC_CLASS |
Declare a class that inherits from CoreBaseObject either directly or indirectly. Works like DECLARE_CLASS but the get_class_info
method is marked as override. See note on DECLARE_CLASS.
#define IMPLEMENT_BASE_CLASS | ( | class_name | ) |
Implement a base class that doesn't inherit from any class.
#define IMPLEMENT_CLASS | ( | class_name, | |
base_class_name | |||
) |
Implement a class that inherits from another class.
#define IMPLEMENT_TEMPLATE_CLASS | ( | class_name, | |
base_class_name, | |||
template_type | |||
) |
Implement a template class that inherits from another class.
#define SPECIALIZE_TEMPLATE_CLASS | ( | class_name, | |
type_name | |||
) |
Specialize a template class for a given type.