ICU 60.2 60.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions | Protected Attributes
icu::LocalPointerBase< T > Class Template Reference

"Smart pointer" base class; do not use directly: use LocalPointer etc. More...

`#include <localpointer.h>`

Inheritance diagram for icu::LocalPointerBase< T >:

## Public Member Functions
| LocalPointerBase (T *p=NULL)
| Constructor takes ownership. More...
| ~LocalPointerBase ()
| Destructor deletes the object it owns. More...
UBool | isNull () const
| NULL check. More...
UBool | isValid () const
| NULL check. More...
bool | operator== (const T *other) const
| Comparison with a simple pointer, so that existing code with ==NULL need not be changed. More...
bool | operator!= (const T *other) const
| Comparison with a simple pointer, so that existing code with !=NULL need not be changed. More...
T * | getAlias () const
| Access without ownership change. More...
T & | operator* () const
| Access without ownership change. More...
T * | operator-> () const
| Access without ownership change. More...
T * | orphan ()
| Gives up ownership; the internal pointer becomes NULL. More...
void | adoptInstead (T *p)
| Deletes the object it owns, and adopts (takes ownership of) the one passed in. More...

## Protected Attributes
T * | ptr
| Actual pointer. More...

## Detailed Description

### template<typename T>
class icu::LocalPointerBase< T >

"Smart pointer" base class; do not use directly: use LocalPointer etc.

Base class for smart pointer classes that do not throw exceptions.

Do not use this base class directly, since it does not delete its pointer. A subclass must implement methods that delete the pointer: Destructor and adoptInstead().

There is no operator T *() provided because the programmer must decide whether to use getAlias() (without transfer of ownership) or orphan() (with transfer of ownership and NULLing of the pointer).

See also
  LocalPointer
  LocalArray
  U_DEFINE_LOCAL_OPEN_POINTER

Stable:
  ICU 4.4

Definition at line 66 of file localpointer.h.

## Constructor & Destructor Documentation

template<typename T>

icu::LocalPointerBase< T >::LocalPointerBase | ( | T * | p = `NULL` | ) |
| inline explicit

Constructor takes ownership.

Parameters

  p | simple pointer to an object that is adopted

Stable:
  ICU 4.4

Definition at line 73 of file localpointer.h.

template<typename T>

icu::LocalPointerBase< T >::~LocalPointerBase | ( |  | ) |
| inline

Destructor deletes the object it owns.

Subclass must override: Base class does nothing.

Stable:
  ICU 4.4

Definition at line 79 of file localpointer.h.

## Member Function Documentation

template<typename T>

void icu::LocalPointerBase< T >::adoptInstead | ( | T * | p | ) |
| inline

Deletes the object it owns, and adopts (takes ownership of) the one passed in.

Subclass must override: Base class does not delete the object.

Parameters

  p | simple pointer to an object that is adopted

Stable:
  ICU 4.4

Definition at line 144 of file localpointer.h.

template<typename T>

T* icu::LocalPointerBase< T >::getAlias | ( |  | ) | const
| inline

Access without ownership change.

Returns
  the pointer value

Stable:
  ICU 4.4

Definition at line 113 of file localpointer.h.

template<typename T>

UBool icu::LocalPointerBase< T >::isNull | ( |  | ) | const
| inline

NULL check.

Returns
  TRUE if ==NULL

Stable:
  ICU 4.4

Definition at line 85 of file localpointer.h.

References NULL.

template<typename T>

UBool icu::LocalPointerBase< T >::isValid | ( |  | ) | const
| inline

NULL check.

Returns
  TRUE if !=NULL

Stable:
  ICU 4.4

Definition at line 91 of file localpointer.h.

References NULL.

template<typename T>

bool icu::LocalPointerBase< T >::operator!= | ( | const T * | other | ) | const
| inline

Comparison with a simple pointer, so that existing code with !=NULL need not be changed.

Parameters

  other | simple pointer for comparison

Returns
  true if this pointer value differs from other

Stable:
  ICU 4.4

Definition at line 107 of file localpointer.h.

template<typename T>

T& icu::LocalPointerBase< T >::operator* | ( |  | ) | const
| inline

Access without ownership change.

Returns
  the pointer value as a reference

Stable:
  ICU 4.4

Definition at line 119 of file localpointer.h.

template<typename T>

T* icu::LocalPointerBase< T >::operator-> | ( |  | ) | const
| inline

Access without ownership change.

Returns
  the pointer value

Stable:
  ICU 4.4

Definition at line 125 of file localpointer.h.

template<typename T>

bool icu::LocalPointerBase< T >::operator== | ( | const T * | other | ) | const
| inline

Comparison with a simple pointer, so that existing code with ==NULL need not be changed.

Parameters

  other | simple pointer for comparison

Returns
  true if this pointer value equals other

Stable:
  ICU 4.4

Definition at line 99 of file localpointer.h.

template<typename T>

T* icu::LocalPointerBase< T >::orphan | ( |  | ) |
| inline

Gives up ownership; the internal pointer becomes NULL.

Returns
  the pointer value; caller becomes responsible for deleting the object

Stable:
  ICU 4.4

Definition at line 132 of file localpointer.h.

References NULL.

## Field Documentation

template<typename T>

T* icu::LocalPointerBase< T >::ptr
| protected

Actual pointer.

Internal:
  Do not use. This API is for internal use only.

Definition at line 153 of file localpointer.h.

Referenced by icu::LocalArray< T >::LocalArray(), icu::LocalPointer< T >::LocalPointer(), icu::LocalPointer< T >::moveFrom(), icu::LocalArray< T >::moveFrom(), icu::LocalPointer< T >::swap(), and icu::LocalArray< T >::swap().

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

- localpointer.h