115 nbool operator!=(
const me& rhs)
const;
118 virtual nbool isTemplate()
const = 0;
119 virtual nbool isAbstract()
const = 0;
120 virtual const std::string& getName()
const;
128 virtual void*
make()
const = 0;
130 template <
typename T> T* makeAs()
const {
136 virtual ncnt size()
const = 0;
147 virtual const type& getSuper()
const = 0;
148 virtual const nbool& isInit()
const = 0;
156 const types& getSubs()
const;
157 const types& getSupers()
const;
167 template <
typename T>
nbool isSuper()
const;
176 template <
typename T>
nbool isSub()
const;
213 virtual types& _getSupers() = 0;
Core class for runtime type information in byeol language
Definition type.hpp:100
const type & getStatic() const BY_CONST_FUNC(_getStatic()) virtual const nchar *getMetaTypeName() const
Get meta type name for efficient type checking
virtual void * make() const =0
create an instance to be refered this type.
const types & getLeafs() const
Returns all most derived classes (leaf nodes) from this class
virtual nbool init()
Initializes type metadata and constructs class hierarchy
nbool isSub(const type &it) const
Checks if this type is a sub class of the given type
virtual nbool operator==(const me &rhs) const
Checks if two type objects represent the same type.
virtual nbool isSuper(const type &it) const
Checks if this type is a super class of the given type
#define BY_SIDE_FUNC(...)
Side function macros for safe pointer operations
Definition sideFunc.hpp:24
Rich logging support with polymorphic type conversion
Definition richLog.hpp:34