ICU 52.1  52.1
Public Member Functions
icu::LocalArray< T > Class Template Reference

"Smart pointer" class, deletes objects via the C++ array delete[] operator. More...

#include <localpointer.h>

Inheritance diagram for icu::LocalArray< T >:
icu::LocalPointerBase< T >

Public Member Functions

 LocalArray (T *p=NULL)
 Constructor takes ownership. More...
 
 LocalArray (T *p, UErrorCode &errorCode)
 Constructor takes ownership and reports an error if NULL. More...
 
 ~LocalArray ()
 Destructor deletes the array it owns. More...
 
void adoptInstead (T *p)
 Deletes the array it owns, and adopts (takes ownership of) the one passed in. More...
 
T & operator[] (ptrdiff_t i) const
 Array item access (writable). More...
 
- Public Member Functions inherited from icu::LocalPointerBase< T >
 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...
 

Additional Inherited Members

- Protected Attributes inherited from icu::LocalPointerBase< T >
T * ptr
 Actual pointer. More...
 

Detailed Description

template<typename T>
class icu::LocalArray< T >

"Smart pointer" class, deletes objects via the C++ array delete[] operator.

For most methods see the LocalPointerBase base class. Adds operator[] for array item access.

Usage example:

LocalArray<UnicodeString> a(new UnicodeString[2]);
a[0].append((UChar)0x61);
if(some condition) { return; } // no need to explicitly delete the array
a.adoptInstead(new UnicodeString[4]);
a[3].append((UChar)0x62).append((UChar)0x63).reverse();
// no need to explicitly delete the array
See also
LocalPointerBase
Stable:
ICU 4.4

Definition at line 232 of file localpointer.h.

Constructor & Destructor Documentation

template<typename T >
icu::LocalArray< T >::LocalArray ( T *  p = NULL)
inlineexplicit

Constructor takes ownership.

Parameters
psimple pointer to an array of T objects that is adopted
Stable:
ICU 4.4

Definition at line 239 of file localpointer.h.

template<typename T >
icu::LocalArray< T >::LocalArray ( T *  p,
UErrorCode errorCode 
)
inline

Constructor takes ownership and reports an error if NULL.

This constructor is intended to be used with other-class constructors that may report a failure UErrorCode, so that callers need to check only for U_FAILURE(errorCode) and not also separately for isNull().

Parameters
psimple pointer to an array of T objects that is adopted
errorCodein/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR if p==NULL and no other failure code had been set
Stable:
ICU 56

Definition at line 253 of file localpointer.h.

References NULL, U_MEMORY_ALLOCATION_ERROR, and U_SUCCESS.

template<typename T >
icu::LocalArray< T >::~LocalArray ( )
inline

Destructor deletes the array it owns.

Stable:
ICU 4.4

Definition at line 262 of file localpointer.h.

Member Function Documentation

template<typename T >
void icu::LocalArray< T >::adoptInstead ( T *  p)
inline

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

Parameters
psimple pointer to an array of T objects that is adopted
Stable:
ICU 4.4

Definition at line 271 of file localpointer.h.

template<typename T >
T& icu::LocalArray< T >::operator[] ( ptrdiff_t  i) const
inline

Array item access (writable).

No index bounds check.

Parameters
iarray index
Returns
reference to the array item
Stable:
ICU 4.4

Definition at line 282 of file localpointer.h.


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