ICU 76.1: icu::LocalPointerBase< T > Class Template Reference

ICU 76.1 76.1

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

## Static Public Member Functions
static void * | operator new (size_t)=delete
static void * | operator new[] (size_t)=delete

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

## 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 68 of file localpointer.h.

## Constructor & Destructor Documentation

## ◆ LocalPointerBase()

template<typename T >

icu::LocalPointerBase< T >::LocalPointerBase | ( | T * | p = nullptr | ) |
| inlineexplicit

Constructor takes ownership.

Parameters

  p | simple pointer to an object that is adopted

Stable
  ICU 4.4

Definition at line 82 of file localpointer.h.

## ◆ ~LocalPointerBase()

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 88 of file localpointer.h.

## Member Function Documentation

## ◆ adoptInstead()

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 153 of file localpointer.h.

## ◆ getAlias()

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 122 of file localpointer.h.

## ◆ isNull()

template<typename T >

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

nullptr check.

Returns
  true if ==nullptr

Stable
  ICU 4.4

Definition at line 94 of file localpointer.h.

Referenced by icu::Locale::getKeywords(), and icu::Locale::getUnicodeKeywords().

## ◆ isValid()

template<typename T >

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

nullptr check.

Returns
  true if !=nullptr

Stable
  ICU 4.4

Definition at line 100 of file localpointer.h.

## ◆ operator!=()

template<typename T >

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

Comparison with a simple pointer, so that existing code with !=nullptr 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 116 of file localpointer.h.

## ◆ operator*()

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 128 of file localpointer.h.

## ◆ operator->()

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 134 of file localpointer.h.

## ◆ operator==()

template<typename T >

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

Comparison with a simple pointer, so that existing code with ==nullptr 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 108 of file localpointer.h.

## ◆ orphan()

template<typename T >

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

Gives up ownership; the internal pointer becomes nullptr.

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

Stable
  ICU 4.4

Definition at line 141 of file localpointer.h.

## Field Documentation

## ◆ ptr

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 162 of file localpointer.h.

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

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

- common/unicode/localpointer.h