ICU 78.1 78.1 |
"Smart pointer" class, deletes objects via the C++ array delete[] operator.More...
#include <localpointer.h>

Public Member Functions | |
| LocalArray (T *p=nullptr) | |
| Constructor takes ownership.More... | |
| LocalArray (T *p,UErrorCode &errorCode) | |
| Constructor takes ownership and reports an error if nullptr.More... | |
| LocalArray (LocalArray< T > &&src) noexcept | |
| Move constructor, leaves src withisNull().More... | |
| LocalArray (std::unique_ptr< T[]> &&p) | |
| Constructs aLocalArray from a C++11 std::unique_ptr of an array type.More... | |
| ~LocalArray () | |
| Destructor deletes the array it owns.More... | |
| LocalArray< T > & | operator= (LocalArray< T > &&src) noexcept |
| Move assignment operator, leaves src withisNull().More... | |
| LocalArray< T > & | operator= (std::unique_ptr< T[]> &&p) noexcept |
| Move-assign from an std::unique_ptr to thisLocalPointer.More... | |
| void | swap (LocalArray< T > &other) noexcept |
| Swap pointers.More... | |
| void | adoptInstead (T *p) |
| Deletes the array it owns, and adopts (takes ownership of) the one passed in.More... | |
| void | adoptInsteadAndCheckErrorCode (T *p,UErrorCode &errorCode) |
| 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... | |
| operator std::unique_ptr< T[]> () && | |
| Conversion operator to a C++11 std::unique_ptr.More... | |
Public Member Functions inherited fromicu::LocalPointerBase< T > | |
| LocalPointerBase (T *p=nullptr) | |
| Constructor takes ownership.More... | |
| ~LocalPointerBase () | |
| Destructor deletes the object it owns.More... | |
| UBool | isNull () const |
| nullptr check.More... | |
| UBool | isValid () const |
| nullptr check.More... | |
| bool | operator== (const T *other) const |
| Comparison with a simple pointer, so that existing code with ==nullptr need not be changed.More... | |
| bool | operator!= (const T *other) const |
| Comparison with a simple pointer, so that existing code with !=nullptr 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 nullptr.More... | |
| void | adoptInstead (T *p) |
| Deletes the object it owns, and adopts (takes ownership of) the one passed in.More... | |
Friends | |
| void | swap (LocalArray< T > &p1,LocalArray< T > &p2) noexcept |
| Non-memberLocalArray swap function.More... | |
Additional Inherited Members | |
Static Public Member Functions inherited fromicu::LocalPointerBase< T > | |
| static void * | operator new (size_t)=delete |
| static void * | operator new[] (size_t)=delete |
| static void * | operator new (size_t, void *)=delete |
Protected Attributes inherited fromicu::LocalPointerBase< T > | |
| T * | ptr |
| Actual pointer.More... | |
"Smart pointer" class, deletes objects via the C++ array delete[] operator.
For most methods see theLocalPointerBase base class. Adds operator[] for array item access.
Usage example:
Definition at line364 of filelocalpointer.h.
| inlineexplicit |
Constructor takes ownership.
| p | simple pointer to an array of T objects that is adopted |
Definition at line373 of filelocalpointer.h.
| inline |
Constructor takes ownership and reports an error if nullptr.
This constructor is intended to be used with other-class constructors that may report a failure UErrorCode, so that callers need to check only forU_FAILURE(errorCode) and not also separately forisNull().
| p | simple pointer to an array of T objects that is adopted |
| errorCode | in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR if p==nullptr and no other failure code had been set |
Definition at line387 of filelocalpointer.h.
ReferencesU_MEMORY_ALLOCATION_ERROR, andU_SUCCESS.
| inlinenoexcept |
Move constructor, leaves src withisNull().
| src | source smart pointer |
Definition at line397 of filelocalpointer.h.
Referencesicu::LocalPointerBase< T >::ptr.
| inlineexplicit |
Constructs aLocalArray from a C++11 std::unique_ptr of an array type.
TheLocalPointer steals the array owned by the std::unique_ptr.
This constructor works via move semantics. If your std::unique_ptr is in a local variable, you must use std::move.
| p | The std::unique_ptr from which the array will be stolen. |
Definition at line411 of filelocalpointer.h.
| inline |
| inline |
Deletes the array it owns, and adopts (takes ownership of) the one passed in.
| p | simple pointer to an array of T objects that is adopted |
Definition at line473 of filelocalpointer.h.
| inline |
Deletes the array it owns, and adopts (takes ownership of) the one passed in.
IfU_FAILURE(errorCode), then the current array is retained and the new one deleted.
IfU_SUCCESS(errorCode) but the input pointer is nullptr, then U_MEMORY_ALLOCATION_ERROR is set, the current array is deleted, and nullptr is set.
| p | simple pointer to an array of T objects that is adopted |
| errorCode | in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR if p==nullptr and no other failure code had been set |
Definition at line492 of filelocalpointer.h.
ReferencesU_MEMORY_ALLOCATION_ERROR, andU_SUCCESS.
| inline |
Conversion operator to a C++11 std::unique_ptr.
Disowns the object and gives it to the returned std::unique_ptr.
This operator works via move semantics. If yourLocalPointer is in a local variable, you must use std::move.
Definition at line523 of filelocalpointer.h.
| inlinenoexcept |
Move assignment operator, leaves src withisNull().
The behavior is undefined if *this and src are the same object.
| src | source smart pointer |
Definition at line428 of filelocalpointer.h.
Referencesicu::LocalPointerBase< T >::ptr.
| inlinenoexcept |
Move-assign from an std::unique_ptr to thisLocalPointer.
Steals the array from the std::unique_ptr.
| p | The std::unique_ptr from which the array will be stolen. |
Definition at line443 of filelocalpointer.h.
| inline |
Array item access (writable).
No index bounds check.
| i | array index |
Definition at line510 of filelocalpointer.h.
| inlinenoexcept |
Swap pointers.
| other | other smart pointer |
Definition at line453 of filelocalpointer.h.
Referencesicu::LocalPointerBase< T >::ptr.
| friend |
Non-memberLocalArray swap function.
| p1 | will get p2's pointer |
| p2 | will get p1's pointer |
Definition at line464 of filelocalpointer.h.