ICU 49.1.1
49.1.1
|
C++ API: Common ICU base class UObject. More...
#include "unicode/utypes.h"
Go to the source code of this file.
Data Structures | |
class | UMemory |
UMemory is the common ICU base class. More... | |
class | UObject |
UObject is the common ICU "boilerplate" class. More... |
Macros | |
#define | UOBJECT_DEFINE_RTTI_IMPLEMENTATION(myClass) |
This is a simple macro to add ICU RTTI to an ICU object implementation. | |
#define | UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(myClass) |
This macro adds ICU RTTI to an ICU abstract class implementation. | |
#define | UOBJECT_DEFINE_NO_RTTI_IMPLEMENTATION(myClass) UClassID myClass::getDynamicClassID() const { return NULL; } |
This is a simple macro to express that a class and its subclasses do not offer ICU's "poor man's RTTI". |
Typedefs | |
typedef void * | UClassID |
UClassID is used to identify classes without using the compiler's RTTI. |
#define UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION | ( | myClass | ) |
This macro adds ICU RTTI to an ICU abstract class implementation.
This macro should be invoked in *.cpp files. The corresponding header should declare getStaticClassID.
myClass | The name of the class that needs RTTI defined. |
#define UOBJECT_DEFINE_NO_RTTI_IMPLEMENTATION | ( | myClass | ) | UClassID myClass::getDynamicClassID() const { return NULL; } |
This is a simple macro to express that a class and its subclasses do not offer ICU's "poor man's RTTI".
Beginning with ICU 4.6, ICU requires C++ compiler RTTI. This does not go into the header. This should only be used in *.cpp files. Use this with a private getDynamicClassID() in an immediate subclass of UObject.
myClass | The name of the class that needs RTTI defined. |
#define UOBJECT_DEFINE_RTTI_IMPLEMENTATION | ( | myClass | ) |
This is a simple macro to add ICU RTTI to an ICU object implementation.
This does not go into the header. This should only be used in *.cpp files.
myClass | The name of the class that needs RTTI defined. |
typedef void* UClassID |
UClassID is used to identify classes without using the compiler's RTTI.
This was used before C++ compilers consistently supported RTTI. ICU 4.6 requires compiler RTTI to be turned on.
Each class hierarchy which needs to implement polymorphic clone() or operator==() defines two methods, described in detail below. UClassID values can be compared using operator==(). Nothing else should be done with them.
Each concrete class implements getStaticClassID() as well, which allows clients to test for a specific type.