libUTL++
Reflection

A simple reflection system. More...

Classes

class  utl::RunTimeClass
 Store information about a class. More...
 
class  utl::TRunTimeClass< T >
 Template version of RunTimeClass. More...
 
class  utl::TConcreteRunTimeClass< T >
 Encapsulate class-related knowledge for concrete classes. More...
 

Macros

#define isA(className)   _isA(CLASS(className))
 Determine whether the class is derived from the given class. More...
 
#define isA2(className, T1, T2)   _isA(CLASS2(className, T1, T2))
 Determine whether the class is derived from a template class instantiated with the two given parameters. More...
 
#define CLASS(className)   (className::getThisClass())
 Get the RunTimeClass object for the given class.
 
#define CLASS2(className, T1, T2)   (className<T1, T2>::getThisClass())
 Get the RunTimeClass object for a template class instantiated with the two given parameters.
 
#define UTL_CLASS_DECL_RTTI_ABC(className)
 Declares the methods that are associated with run-time type identification (RTTI).
 
#define UTL_CLASS_DECL_RTTI(className)
 Declares the methods that are associated with run-time type identification (RTTI).
 
#define UTL_CLASS_DECL_RTTI_TPL(className, T)
 Declares the methods that are associated with run-time type identification (RTTI) for a template class with one parameter.
 
#define UTL_CLASS_DECL_RTTI_TPL2(className, T1, T2)
 Declares the methods that are associated with run-time type identification (RTTI) for a template class with two parameters.
 
#define UTL_CLASS_IMPL_RTTI_ABC(className)
 Implements the methods that are associated with run-time type identification (RTTI).
 
#define UTL_CLASS_IMPL_RTTI(className)
 Implements the methods that are associated with run-time type identification (RTTI).
 
#define UTL_CLASS_IMPL_RTTI_TPL(className, T)
 Implements the methods that are associated with run-time type identification (RTTI) for a template class.
 
#define UTL_CLASS_IMPL_RTTI_TPL2(className, T1, T2)
 Implements the methods that are associated with run-time type identification (RTTI) for a template class.
 
#define UTL_CLASS_IMPL_NAME(className)
 Define the name of a class.
 
#define UTL_CLASS_IMPL_NAME_TPL(className, T)
 Define the name of a template class with one parameter.
 
#define UTL_CLASS_IMPL_NAME_TPL2(className, T1, T2)
 Define the name of a template class with two parameters.
 
#define UTL_CLASS_IMPL_NAME_TPLxTPL2(className, TC, T1, T2)
 Define the name of a template class with one parameter (which itself is a template class with two parameters).
 

Detailed Description

A simple reflection system.

Macro Definition Documentation

◆ isA

#define isA (   className)    _isA(CLASS(className))

Determine whether the class is derived from the given class.

See also
Object::_isA()
RunTimeClass::_isA()

Definition at line 230 of file RunTimeClass.h.

Referenced by utl::cast(), and utl::cast_const().

◆ isA2

#define isA2 (   className,
  T1,
  T2 
)    _isA(CLASS2(className, T1, T2))

Determine whether the class is derived from a template class instantiated with the two given parameters.

See also
Object::_isA()
RunTimeClass::_isA()

Definition at line 241 of file RunTimeClass.h.