# UMemory Class Reference

UMemory is the common ICU base class. More...

`#include <uobject.h>`

Inheritance diagram for UMemory:

## Static Public Member Functions
static void * | operator new (size_t size)
| Override for ICU4C C++ memory management.
static void * | operator new[] (size_t size)
| Override for ICU4C C++ memory management.
static void | operator delete (void *p)
| Override for ICU4C C++ memory management.
static void | operator delete[] (void *p)
| Override for ICU4C C++ memory management.
static void * | operator new (size_t, void *ptr)
| Override for ICU4C C++ memory management for STL.
static void | operator delete (void *, void *)
| Override for ICU4C C++ memory management for STL.

## Detailed Description

UMemory is the common ICU base class.

All other ICU C++ classes are derived from UMemory (starting with ICU 2.4).

This is primarily to make it possible and simple to override the C++ memory management by adding new/delete operators to this base class.

To override ALL ICU memory management, including that from plain C code, replace the allocation functions declared in cmemory.h

UMemory does not contain any virtual functions. Common "boilerplate" functions are defined in UObject.

Stable:
  ICU 2.4

Definition at line 101 of file uobject.h.

## Member Function Documentation

static void UMemory::operator delete | ( | void * | ,
|  | void * |  |
| ) |  |  | `[inline, static]`

Override for ICU4C C++ memory management for STL.

See delete().

Stable:
  ICU 2.6

Definition at line 159 of file uobject.h.

static void UMemory::operator delete | ( | void * | p | ) | `[static]`

Override for ICU4C C++ memory management.

simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes

Stable:
  ICU 2.4

static void UMemory::operator delete[] | ( | void * | p | ) | `[static]`

Override for ICU4C C++ memory management.

See delete().

Stable:
  ICU 2.4

static void* UMemory::operator new | ( | size_t | ,
|  | void * | ptr |
| ) |  |  | `[inline, static]`

Override for ICU4C C++ memory management for STL.

See new().

Stable:
  ICU 2.6

Definition at line 152 of file uobject.h.

static void* UMemory::operator new | ( | size_t | size | ) | `[static]`

Override for ICU4C C++ memory management.

simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes

Stable:
  ICU 2.4

static void* UMemory::operator new[] | ( | size_t | size | ) | `[static]`

Override for ICU4C C++ memory management.

See new().

Stable:
  ICU 2.4

The documentation for this class was generated from the following file:

- uobject.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines