#include <Xrtti.h>
Public Types | |
enum | BaseType { BaseType_Void = 0, BaseType_Bool = 1, BaseType_Char = 2, BaseType_Unsigned_Char = 3, BaseType_WChar = 4, BaseType_Short = 5, BaseType_Unsigned_Short = 6, BaseType_Int = 7, BaseType_Unsigned_Int = 8, BaseType_Long = 9, BaseType_Unsigned_Long = 10, BaseType_Long_Long = 11, BaseType_Unsigned_Long_Long = 12, BaseType_Float = 13, BaseType_Double = 14, BaseType_Long_Double = 15, BaseType_Enumeration = 16, BaseType_Function = 17, BaseType_Structure = 18 } |
Public Member Functions | |
virtual | ~Type () |
bool | operator== (const Type &other) const |
bool | operator!= (const Type &other) const |
virtual BaseType | GetBaseType () const =0 |
virtual bool | IsConst () const =0 |
virtual bool | IsVolatile () const =0 |
virtual bool | IsReference () const =0 |
virtual u32 | GetArrayOrPointerCount () const =0 |
virtual const ArrayOrPointer & | GetArrayOrPointer (u32 index) const =0 |
const * volatile * int[5][];
... would have two Pointers (the first one volatile, the second const), and two Arrays (the first one with element count 5, the second with element count unbounded).
********************************************************************** These are the C++ types which may be represented by a Type object.
If the Type of this Type is BaseType_Enumeration, then this Type is actually a TypeEnumeration object.
If the Type of this Type is BaseType_Function, then this Type is actually a TypeFunction object.
If the Type of this Type is BaseType_Structure, then this Type is actually a TypeStructure object.
Otherwise, the Type object is not subclassed.
virtual Xrtti::Type::~Type | ( | ) | [inline, virtual] |
bool Xrtti::Type::operator== | ( | const Type & | other | ) | const |
Equality operator - returns true if this object is "functionally equivalent" to [other]. The two objects don't have to be exactly identical, but do have to be identical in every meaningful way. Note also that this doesn't test for equality of any base class members; it is a test only at this level of the inheritence hierarcy. To test if an object is completely equals, including for all of its subclasses defined in the Xrtti hierarchy, you must cast this class to its most derived class and call that method.
other | is the other object to compare against |
bool Xrtti::Type::operator!= | ( | const Type & | other | ) | const [inline] |
Inequality operator - returns false when the == operator would return true, and vice versa.
other | is the other object to compare against |
virtual BaseType Xrtti::Type::GetBaseType | ( | ) | const [pure virtual] |
virtual bool Xrtti::Type::IsConst | ( | ) | const [pure virtual] |
virtual bool Xrtti::Type::IsVolatile | ( | ) | const [pure virtual] |
virtual bool Xrtti::Type::IsReference | ( | ) | const [pure virtual] |
virtual u32 Xrtti::Type::GetArrayOrPointerCount | ( | ) | const [pure virtual] |
This class has an ordered list of ArrayOrPointer objects each of which describes how the heck to explain this???
virtual const ArrayOrPointer& Xrtti::Type::GetArrayOrPointer | ( | u32 | index | ) | const [pure virtual] |
Returns the ArrayOrPointer object at the given index.
index | is the index of the ArrayOrPointer object to return. |