C++ API: "Smart pointers" for use with and in ICU4C C++ code. More...
#include "unicode/utypes.h"#include <memory>Go to the source code of this file.
Data Structures | |
| class | icu::LocalPointerBase< T > |
| "Smart pointer" base class; do not use directly: use LocalPointer etc. More... | |
| class | icu::LocalPointer< T > |
| "Smart pointer" class, deletes objects via the standard C++ delete operator. More... | |
| class | icu::LocalArray< T > |
| "Smart pointer" class, deletes objects via the C++ array delete[] operator. More... | |
Defines | |
| #define | U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction) |
| "Smart pointer" definition macro, deletes objects via the closeFunction. | |
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
These classes are inspired by
but none of those provide for all of the goals for ICU smart pointers:
For details see http://site.icu-project.org/design/cpp/scoped_ptr
Definition in file localpointer.h.
| #define U_DEFINE_LOCAL_OPEN_POINTER | ( | LocalPointerClassName, | |||
| Type, | |||||
| closeFunction | ) |
"Smart pointer" definition macro, deletes objects via the closeFunction.
Defines a subclass of LocalPointerBase which works just like LocalPointer<Type> except that this subclass will use the closeFunction rather than the C++ delete operator.
Usage example:
LocalUCaseMapPointer csm(ucasemap_open(localeID, options, &errorCode)); utf8OutLength=ucasemap_utf8ToLower(csm.getAlias(), utf8Out, (int32_t)sizeof(utf8Out), utf8In, utf8InLength, &errorCode); if(U_FAILURE(errorCode)) { return; } // no need to explicitly delete the UCaseMap
Definition at line 562 of file localpointer.h.
1.6.1