Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/intl/icu/source/common/unicode/localpointer.h
Line
Count
Source (jump to first uncovered line)
1
// © 2016 and later: Unicode, Inc. and others.
2
// License & terms of use: http://www.unicode.org/copyright.html
3
/*
4
*******************************************************************************
5
*
6
*   Copyright (C) 2009-2016, International Business Machines
7
*   Corporation and others.  All Rights Reserved.
8
*
9
*******************************************************************************
10
*   file name:  localpointer.h
11
*   encoding:   UTF-8
12
*   tab size:   8 (not used)
13
*   indentation:4
14
*
15
*   created on: 2009nov13
16
*   created by: Markus W. Scherer
17
*/
18
19
#ifndef __LOCALPOINTER_H__
20
#define __LOCALPOINTER_H__
21
22
/**
23
 * \file
24
 * \brief C++ API: "Smart pointers" for use with and in ICU4C C++ code.
25
 *
26
 * These classes are inspired by
27
 * - std::auto_ptr
28
 * - boost::scoped_ptr & boost::scoped_array
29
 * - Taligent Safe Pointers (TOnlyPointerTo)
30
 *
31
 * but none of those provide for all of the goals for ICU smart pointers:
32
 * - Smart pointer owns the object and releases it when it goes out of scope.
33
 * - No transfer of ownership via copy/assignment to reduce misuse. Simpler & more robust.
34
 * - ICU-compatible: No exceptions.
35
 * - Need to be able to orphan/release the pointer and its ownership.
36
 * - Need variants for normal C++ object pointers, C++ arrays, and ICU C service objects.
37
 *
38
 * For details see http://site.icu-project.org/design/cpp/scoped_ptr
39
 */
40
41
#include "unicode/utypes.h"
42
43
#if U_SHOW_CPLUSPLUS_API
44
45
U_NAMESPACE_BEGIN
46
47
/**
48
 * "Smart pointer" base class; do not use directly: use LocalPointer etc.
49
 *
50
 * Base class for smart pointer classes that do not throw exceptions.
51
 *
52
 * Do not use this base class directly, since it does not delete its pointer.
53
 * A subclass must implement methods that delete the pointer:
54
 * Destructor and adoptInstead().
55
 *
56
 * There is no operator T *() provided because the programmer must decide
57
 * whether to use getAlias() (without transfer of ownership) or orphan()
58
 * (with transfer of ownership and NULLing of the pointer).
59
 *
60
 * @see LocalPointer
61
 * @see LocalArray
62
 * @see U_DEFINE_LOCAL_OPEN_POINTER
63
 * @stable ICU 4.4
64
 */
65
template<typename T>
66
class LocalPointerBase {
67
public:
68
    /**
69
     * Constructor takes ownership.
70
     * @param p simple pointer to an object that is adopted
71
     * @stable ICU 4.4
72
     */
73
3
    explicit LocalPointerBase(T *p=NULL) : ptr(p) {}
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector32>::LocalPointerBase(icu_62::UVector32*)
icu_62::LocalPointerBase<icu_62::Norm2AllModes>::LocalPointerBase(icu_62::Norm2AllModes*)
Line
Count
Source
73
3
    explicit LocalPointerBase(T *p=NULL) : ptr(p) {}
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::StringEnumeration>::LocalPointerBase(icu_62::StringEnumeration*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedBreakIterator>::LocalPointerBase(icu_62::RuleBasedBreakIterator*)
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::LocalPointerBase(UConverterSelector*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ListFormatter>::LocalPointerBase(icu_62::ListFormatter*)
Unexecuted instantiation: icu_62::LocalPointerBase<char const*>::LocalPointerBase(char const**)
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepProfile>::LocalPointerBase(UStringPrepProfile*)
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepKey>::LocalPointerBase(UStringPrepKey*)
Unexecuted instantiation: icu_62::LocalPointerBase<char>::LocalPointerBase(char*)
Unexecuted instantiation: icu_62::LocalPointerBase<ULocaleData>::LocalPointerBase(ULocaleData*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BucketList>::LocalPointerBase(icu_62::BucketList*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedCollator>::LocalPointerBase(icu_62::RuleBasedCollator*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::LocalPointerBase(icu_62::UVector*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZone>::LocalPointerBase(icu_62::TimeZone*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::LocalPointerBase(icu_62::CollationTailoring*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationDataBuilder>::LocalPointerBase(icu_62::CollationDataBuilder*)
Unexecuted instantiation: icu_62::LocalPointerBase<unsigned char>::LocalPointerBase(unsigned char*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateTimePatternGenerator>::LocalPointerBase(icu_62::DateTimePatternGenerator*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFmtBestPattern>::LocalPointerBase(icu_62::DateFmtBestPattern*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Calendar>::LocalPointerBase(icu_62::Calendar*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFormat>::LocalPointerBase(icu_62::DateFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem>::LocalPointerBase(icu_62::NumberingSystem*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalFormatProperties>::LocalPointerBase(icu_62::number::impl::DecimalFormatProperties*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::LocalizedNumberFormatter const>::LocalPointerBase(icu_62::number::LocalizedNumberFormatter const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::LocalPointerBase(icu_62::CurrencyPluralInfo*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::LocalPointerBase(icu_62::DecimalFormatSymbols const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Hashtable>::LocalPointerBase(icu_62::Hashtable*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalInfo>::LocalPointerBase(icu_62::DateIntervalInfo*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat>::LocalPointerBase(icu_62::SimpleDateFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalQuantity>::LocalPointerBase(icu_62::number::impl::DecimalQuantity*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MeasureFormatCacheData>::LocalPointerBase(icu_62::MeasureFormatCacheData*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::LocalPointerBase(icu_62::NumberFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Format>::LocalPointerBase(icu_62::Format*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Formattable>::LocalPointerBase(icu_62::Formattable*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationElementIterator>::LocalPointerBase(icu_62::CollationElementIterator*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LocalizedNumberFormatterAsFormat>::LocalPointerBase(icu_62::number::impl::LocalizedNumberFormatterAsFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::PluralRules const>::LocalPointerBase(icu_62::PluralRules const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParsedPatternInfo const>::LocalPointerBase(icu_62::number::impl::ParsedPatternInfo const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ScientificHandler const>::LocalPointerBase(icu_62::number::impl::ScientificHandler const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::MutablePatternModifier>::LocalPointerBase(icu_62::number::impl::MutablePatternModifier*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ImmutablePatternModifier const>::LocalPointerBase(icu_62::number::impl::ImmutablePatternModifier const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LongNameHandler const>::LocalPointerBase(icu_62::number::impl::LongNameHandler const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::CompactHandler const>::LocalPointerBase(icu_62::number::impl::CompactHandler const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem const>::LocalPointerBase(icu_62::NumberingSystem const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecNum>::LocalPointerBase(icu_62::number::impl::DecNum*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParameterizedModifier>::LocalPointerBase(icu_62::number::impl::ParameterizedModifier*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyAmount>::LocalPointerBase(icu_62::CurrencyAmount*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols>::LocalPointerBase(icu_62::DecimalFormatSymbols*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeSet const>::LocalPointerBase(icu_62::UnicodeSet const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString const>::LocalPointerBase(icu_62::UnicodeString const*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::numparse::impl::NumberParserImpl>::LocalPointerBase(icu_62::numparse::impl::NumberParserImpl*)
Unexecuted instantiation: icu_62::LocalPointerBase<UHashtable>::LocalPointerBase(UHashtable*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::LocalPointerBase(icu_62::DecimalFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Region>::LocalPointerBase(icu_62::Region*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::LocalPointerBase(icu_62::RelativeDateTimeCacheData*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeFormatter>::LocalPointerBase(icu_62::RelativeDateTimeFormatter*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeSet>::LocalPointerBase(icu_62::UnicodeSet*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ScientificNumberFormatter::Style>::LocalPointerBase(icu_62::ScientificNumberFormatter::Style*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat::NSOverride>::LocalPointerBase(icu_62::SimpleDateFormat::NSOverride*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneFormat>::LocalPointerBase(icu_62::TimeZoneFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames>::LocalPointerBase(icu_62::TimeZoneNames*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeUnitAmount>::LocalPointerBase(icu_62::TimeUnitAmount*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat>::LocalPointerBase(icu_62::MessageFormat*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat*>::LocalPointerBase(icu_62::MessageFormat**)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames::MatchInfoCollection>::LocalPointerBase(icu_62::TimeZoneNames::MatchInfoCollection*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ZoneIdMatchHandler>::LocalPointerBase(icu_62::ZoneIdMatchHandler*)
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalFormat>::LocalPointerBase(icu_62::DateIntervalFormat*)
74
    /**
75
     * Destructor deletes the object it owns.
76
     * Subclass must override: Base class does nothing.
77
     * @stable ICU 4.4
78
     */
79
3
    ~LocalPointerBase() { /* delete ptr; */ }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector32>::~LocalPointerBase()
icu_62::LocalPointerBase<icu_62::Norm2AllModes>::~LocalPointerBase()
Line
Count
Source
79
3
    ~LocalPointerBase() { /* delete ptr; */ }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::StringEnumeration>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedBreakIterator>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ListFormatter>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<char const*>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<char>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepKey>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepProfile>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<ULocaleData>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BucketList>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedCollator>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZone>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationDataBuilder>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<unsigned char>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFmtBestPattern>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateTimePatternGenerator>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Calendar>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalFormatProperties>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::LocalizedNumberFormatter const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Hashtable>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalInfo>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalQuantity>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MeasureFormatCacheData>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Format>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Formattable>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationElementIterator>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::CompactHandler const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LongNameHandler const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ImmutablePatternModifier const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::MutablePatternModifier>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ScientificHandler const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParsedPatternInfo const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::PluralRules const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LocalizedNumberFormatterAsFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecNum>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParameterizedModifier>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyAmount>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeSet const>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::numparse::impl::NumberParserImpl>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<UHashtable>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Region>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeFormatter>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeSet>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ScientificNumberFormatter::Style>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat::NSOverride>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeUnitAmount>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat*>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames::MatchInfoCollection>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ZoneIdMatchHandler>::~LocalPointerBase()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalFormat>::~LocalPointerBase()
80
    /**
81
     * NULL check.
82
     * @return TRUE if ==NULL
83
     * @stable ICU 4.4
84
     */
85
0
    UBool isNull() const { return ptr==NULL; }
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BucketList>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedCollator>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<UResourceBundle>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<unsigned char>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Calendar>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationElementIterator>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::PluralRules const>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString const>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BreakIterator>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat::NSOverride>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat*>::isNull() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames::MatchInfoCollection>::isNull() const
86
    /**
87
     * NULL check.
88
     * @return TRUE if !=NULL
89
     * @stable ICU 4.4
90
     */
91
0
    UBool isValid() const { return ptr!=NULL; }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector32>::isValid() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::StringEnumeration>::isValid() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString>::isValid() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Format>::isValid() const
92
    /**
93
     * Comparison with a simple pointer, so that existing code
94
     * with ==NULL need not be changed.
95
     * @param other simple pointer for comparison
96
     * @return true if this pointer value equals other
97
     * @stable ICU 4.4
98
     */
99
0
    bool operator==(const T *other) const { return ptr==other; }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalFormatProperties>::operator==(icu_62::number::impl::DecimalFormatProperties const*) const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::operator==(icu_62::DecimalFormatSymbols const*) const
100
    /**
101
     * Comparison with a simple pointer, so that existing code
102
     * with !=NULL need not be changed.
103
     * @param other simple pointer for comparison
104
     * @return true if this pointer value differs from other
105
     * @stable ICU 4.4
106
     */
107
0
    bool operator!=(const T *other) const { return ptr!=other; }
108
    /**
109
     * Access without ownership change.
110
     * @return the pointer value
111
     * @stable ICU 4.4
112
     */
113
3
    T *getAlias() const { return ptr; }
icu_62::LocalPointerBase<icu_62::Norm2AllModes>::getAlias() const
Line
Count
Source
113
3
    T *getAlias() const { return ptr; }
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<char const*>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepProfile>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BucketList>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedCollator>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<ULocaleData>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<unsigned char>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Hashtable>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ScientificHandler const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParsedPatternInfo const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ImmutablePatternModifier const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LongNameHandler const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::CompactHandler const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::PluralRules const>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<UHashtable>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Region>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BreakIterator>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ScientificNumberFormatter::Style>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat*>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames::MatchInfoCollection>::getAlias() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ZoneIdMatchHandler>::getAlias() const
114
    /**
115
     * Access without ownership change.
116
     * @return the pointer value as a reference
117
     * @stable ICU 4.4
118
     */
119
0
    T &operator*() const { return *ptr; }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalFormatProperties>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::LocalizedNumberFormatter const>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalQuantity>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MeasureFormatCacheData>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParsedPatternInfo const>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::numparse::impl::NumberParserImpl>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::operator*() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeSet>::operator*() const
120
    /**
121
     * Access without ownership change.
122
     * @return the pointer value
123
     * @stable ICU 4.4
124
     */
125
0
    T *operator->() const { return ptr; }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector32>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::StringEnumeration>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepProfile>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepKey>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationDataBuilder>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalFormatProperties>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateTimePatternGenerator>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberingSystem>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::LocalizedNumberFormatter const>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MeasureFormatCacheData>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationElementIterator>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ImmutablePatternModifier const>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::MutablePatternModifier>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecNum>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::ParameterizedModifier>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::numparse::impl::NumberParserImpl>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Region>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat::NSOverride>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneFormat>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZoneNames::MatchInfoCollection>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ZoneIdMatchHandler>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalFormat>::operator->() const
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyAmount>::operator->() const
126
    /**
127
     * Gives up ownership; the internal pointer becomes NULL.
128
     * @return the pointer value;
129
     *         caller becomes responsible for deleting the object
130
     * @stable ICU 4.4
131
     */
132
3
    T *orphan() {
133
3
        T *p=ptr;
134
3
        ptr=NULL;
135
3
        return p;
136
3
    }
icu_62::LocalPointerBase<icu_62::Norm2AllModes>::orphan()
Line
Count
Source
132
3
    T *orphan() {
133
3
        T *p=ptr;
134
3
        ptr=NULL;
135
3
        return p;
136
3
    }
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedBreakIterator>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<UConverterSelector>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ListFormatter>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<char>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepProfile>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<UStringPrepKey>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UnicodeString>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::BucketList>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RuleBasedCollator>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::UVector>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeZone>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationTailoring>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CollationDataBuilder>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<unsigned char>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFmtBestPattern>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Calendar>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyPluralInfo>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols const>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Hashtable>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalInfo>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<int>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateTimePatternGenerator>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecimalQuantity>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MeasureFormatCacheData>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::NumberFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Format>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Formattable>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::LocalizedNumberFormatterAsFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::number::impl::DecNum>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::CurrencyAmount>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormatSymbols>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::numparse::impl::NumberParserImpl>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::Region>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<UHashtable>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeCacheData>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::RelativeDateTimeFormatter>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DecimalFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::ScientificNumberFormatter::Style>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::SimpleDateFormat::NSOverride>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::TimeUnitAmount>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat*>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::MessageFormat>::orphan()
Unexecuted instantiation: icu_62::LocalPointerBase<icu_62::DateIntervalFormat>::orphan()
137
    /**
138
     * Deletes the object it owns,
139
     * and adopts (takes ownership of) the one passed in.
140
     * Subclass must override: Base class does not delete the object.
141
     * @param p simple pointer to an object that is adopted
142
     * @stable ICU 4.4
143
     */
144
    void adoptInstead(T *p) {
145
        // delete ptr;
146
        ptr=p;
147
    }
148
protected:
149
    /**
150
     * Actual pointer.
151
     * @internal
152
     */
153
    T *ptr;
154
private:
155
    // No comparison operators with other LocalPointerBases.
156
    bool operator==(const LocalPointerBase<T> &other);
157
    bool operator!=(const LocalPointerBase<T> &other);
158
    // No ownership sharing: No copy constructor, no assignment operator.
159
    LocalPointerBase(const LocalPointerBase<T> &other);
160
    void operator=(const LocalPointerBase<T> &other);
161
    // No heap allocation. Use only on the stack.
162
    static void * U_EXPORT2 operator new(size_t size);
163
    static void * U_EXPORT2 operator new[](size_t size);
164
#if U_HAVE_PLACEMENT_NEW
165
    static void * U_EXPORT2 operator new(size_t, void *ptr);
166
#endif
167
};
168
169
/**
170
 * "Smart pointer" class, deletes objects via the standard C++ delete operator.
171
 * For most methods see the LocalPointerBase base class.
172
 *
173
 * Usage example:
174
 * \code
175
 * LocalPointer<UnicodeString> s(new UnicodeString((UChar32)0x50005));
176
 * int32_t length=s->length();  // 2
177
 * char16_t lead=s->charAt(0);  // 0xd900
178
 * if(some condition) { return; }  // no need to explicitly delete the pointer
179
 * s.adoptInstead(new UnicodeString((char16_t)0xfffc));
180
 * length=s->length();  // 1
181
 * // no need to explicitly delete the pointer
182
 * \endcode
183
 *
184
 * @see LocalPointerBase
185
 * @stable ICU 4.4
186
 */
187
template<typename T>
188
class LocalPointer : public LocalPointerBase<T> {
189
public:
190
    using LocalPointerBase<T>::operator*;
191
    using LocalPointerBase<T>::operator->;
192
    /**
193
     * Constructor takes ownership.
194
     * @param p simple pointer to an object that is adopted
195
     * @stable ICU 4.4
196
     */
197
3
    explicit LocalPointer(T *p=NULL) : LocalPointerBase<T>(p) {}
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector32>::LocalPointer(icu_62::UVector32*)
icu_62::LocalPointer<icu_62::Norm2AllModes>::LocalPointer(icu_62::Norm2AllModes*)
Line
Count
Source
197
3
    explicit LocalPointer(T *p=NULL) : LocalPointerBase<T>(p) {}
Unexecuted instantiation: icu_62::LocalPointer<icu_62::StringEnumeration>::LocalPointer(icu_62::StringEnumeration*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ListFormatter>::LocalPointer(icu_62::ListFormatter*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::BucketList>::LocalPointer(icu_62::BucketList*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RuleBasedCollator>::LocalPointer(icu_62::RuleBasedCollator*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeString>::LocalPointer(icu_62::UnicodeString*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZone>::LocalPointer(icu_62::TimeZone*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationTailoring>::LocalPointer(icu_62::CollationTailoring*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateTimePatternGenerator>::LocalPointer(icu_62::DateTimePatternGenerator*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Calendar>::LocalPointer(icu_62::Calendar*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem>::LocalPointer(icu_62::NumberingSystem*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalFormatProperties>::LocalPointer(icu_62::number::impl::DecimalFormatProperties*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::LocalizedNumberFormatter const>::LocalPointer(icu_62::number::LocalizedNumberFormatter const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyPluralInfo>::LocalPointer(icu_62::CurrencyPluralInfo*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols const>::LocalPointer(icu_62::DecimalFormatSymbols const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::LocalPointer(icu_62::UVector*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberFormat>::LocalPointer(icu_62::NumberFormat*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Format>::LocalPointer(icu_62::Format*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationElementIterator>::LocalPointer(icu_62::CollationElementIterator*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::PluralRules const>::LocalPointer(icu_62::PluralRules const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ParsedPatternInfo const>::LocalPointer(icu_62::number::impl::ParsedPatternInfo const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ScientificHandler const>::LocalPointer(icu_62::number::impl::ScientificHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::MutablePatternModifier>::LocalPointer(icu_62::number::impl::MutablePatternModifier*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ImmutablePatternModifier const>::LocalPointer(icu_62::number::impl::ImmutablePatternModifier const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::LongNameHandler const>::LocalPointer(icu_62::number::impl::LongNameHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::CompactHandler const>::LocalPointer(icu_62::number::impl::CompactHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem const>::LocalPointer(icu_62::NumberingSystem const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ParameterizedModifier>::LocalPointer(icu_62::number::impl::ParameterizedModifier*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols>::LocalPointer(icu_62::DecimalFormatSymbols*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet const>::LocalPointer(icu_62::UnicodeSet const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::numparse::impl::NumberParserImpl>::LocalPointer(icu_62::numparse::impl::NumberParserImpl*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RelativeDateTimeCacheData>::LocalPointer(icu_62::RelativeDateTimeCacheData*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet>::LocalPointer(icu_62::UnicodeSet*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormat>::LocalPointer(icu_62::DecimalFormat*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ScientificNumberFormatter::Style>::LocalPointer(icu_62::ScientificNumberFormatter::Style*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::SimpleDateFormat::NSOverride>::LocalPointer(icu_62::SimpleDateFormat::NSOverride*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneFormat>::LocalPointer(icu_62::TimeZoneFormat*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneNames>::LocalPointer(icu_62::TimeZoneNames*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Hashtable>::LocalPointer(icu_62::Hashtable*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MessageFormat>::LocalPointer(icu_62::MessageFormat*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneNames::MatchInfoCollection>::LocalPointer(icu_62::TimeZoneNames::MatchInfoCollection*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ZoneIdMatchHandler>::LocalPointer(icu_62::ZoneIdMatchHandler*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateIntervalFormat>::LocalPointer(icu_62::DateIntervalFormat*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyAmount>::LocalPointer(icu_62::CurrencyAmount*)
198
    /**
199
     * Constructor takes ownership and reports an error if NULL.
200
     *
201
     * This constructor is intended to be used with other-class constructors
202
     * that may report a failure UErrorCode,
203
     * so that callers need to check only for U_FAILURE(errorCode)
204
     * and not also separately for isNull().
205
     *
206
     * @param p simple pointer to an object that is adopted
207
     * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR
208
     *     if p==NULL and no other failure code had been set
209
     * @stable ICU 55
210
     */
211
0
    LocalPointer(T *p, UErrorCode &errorCode) : LocalPointerBase<T>(p) {
212
0
        if(p==NULL && U_SUCCESS(errorCode)) {
213
0
            errorCode=U_MEMORY_ALLOCATION_ERROR;
214
0
        }
215
0
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector32>::LocalPointer(icu_62::UVector32*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RuleBasedBreakIterator>::LocalPointer(icu_62::RuleBasedBreakIterator*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::LocalPointer(icu_62::UVector*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationDataBuilder>::LocalPointer(icu_62::CollationDataBuilder*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateFmtBestPattern>::LocalPointer(icu_62::DateFmtBestPattern*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateFormat>::LocalPointer(icu_62::DateFormat*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyPluralInfo>::LocalPointer(icu_62::CurrencyPluralInfo*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeString>::LocalPointer(icu_62::UnicodeString*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Hashtable>::LocalPointer(icu_62::Hashtable*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem>::LocalPointer(icu_62::NumberingSystem*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateIntervalInfo>::LocalPointer(icu_62::DateIntervalInfo*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::SimpleDateFormat>::LocalPointer(icu_62::SimpleDateFormat*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateTimePatternGenerator>::LocalPointer(icu_62::DateTimePatternGenerator*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalQuantity>::LocalPointer(icu_62::number::impl::DecimalQuantity*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MeasureFormatCacheData>::LocalPointer(icu_62::MeasureFormatCacheData*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::LocalizedNumberFormatterAsFormat>::LocalPointer(icu_62::number::impl::LocalizedNumberFormatterAsFormat*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecNum>::LocalPointer(icu_62::number::impl::DecNum*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyAmount>::LocalPointer(icu_62::CurrencyAmount*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormat>::LocalPointer(icu_62::DecimalFormat*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Region>::LocalPointer(icu_62::Region*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RelativeDateTimeFormatter>::LocalPointer(icu_62::RelativeDateTimeFormatter*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeUnitAmount>::LocalPointer(icu_62::TimeUnitAmount*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::StringEnumeration>::LocalPointer(icu_62::StringEnumeration*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MessageFormat>::LocalPointer(icu_62::MessageFormat*, UErrorCode&)
216
    /**
217
     * Move constructor, leaves src with isNull().
218
     * @param src source smart pointer
219
     * @stable ICU 56
220
     */
221
    LocalPointer(LocalPointer<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
222
        src.ptr=NULL;
223
    }
224
    /**
225
     * Destructor deletes the object it owns.
226
     * @stable ICU 4.4
227
     */
228
3
    ~LocalPointer() {
229
3
        delete LocalPointerBase<T>::ptr;
230
3
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector32>::~LocalPointer()
icu_62::LocalPointer<icu_62::Norm2AllModes>::~LocalPointer()
Line
Count
Source
228
3
    ~LocalPointer() {
229
3
        delete LocalPointerBase<T>::ptr;
230
3
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::StringEnumeration>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RuleBasedBreakIterator>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ListFormatter>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::BucketList>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RuleBasedCollator>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeString>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZone>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationTailoring>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationDataBuilder>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateFmtBestPattern>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateTimePatternGenerator>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Calendar>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalFormatProperties>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::LocalizedNumberFormatter const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyPluralInfo>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Hashtable>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateIntervalInfo>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::SimpleDateFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalQuantity>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MeasureFormatCacheData>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Format>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CollationElementIterator>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::CompactHandler const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::LongNameHandler const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ImmutablePatternModifier const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::MutablePatternModifier>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ScientificHandler const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ParsedPatternInfo const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::PluralRules const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::LocalizedNumberFormatterAsFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecNum>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ParameterizedModifier>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyAmount>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet const>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::numparse::impl::NumberParserImpl>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Region>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RelativeDateTimeCacheData>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::RelativeDateTimeFormatter>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ScientificNumberFormatter::Style>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::SimpleDateFormat::NSOverride>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneNames>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeUnitAmount>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MessageFormat>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::TimeZoneNames::MatchInfoCollection>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::ZoneIdMatchHandler>::~LocalPointer()
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DateIntervalFormat>::~LocalPointer()
231
    /**
232
     * Move assignment operator, leaves src with isNull().
233
     * The behavior is undefined if *this and src are the same object.
234
     * @param src source smart pointer
235
     * @return *this
236
     * @stable ICU 56
237
     */
238
0
    LocalPointer<T> &operator=(LocalPointer<T> &&src) U_NOEXCEPT {
239
0
        return moveFrom(src);
240
0
    }
241
    // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API
242
    /**
243
     * Move assignment, leaves src with isNull().
244
     * The behavior is undefined if *this and src are the same object.
245
     *
246
     * Can be called explicitly, does not need C++11 support.
247
     * @param src source smart pointer
248
     * @return *this
249
     * @draft ICU 56
250
     */
251
0
    LocalPointer<T> &moveFrom(LocalPointer<T> &src) U_NOEXCEPT {
252
0
        delete LocalPointerBase<T>::ptr;
253
0
        LocalPointerBase<T>::ptr=src.ptr;
254
0
        src.ptr=NULL;
255
0
        return *this;
256
0
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector32>::moveFrom(icu_62::LocalPointer<icu_62::UVector32>&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::moveFrom(icu_62::LocalPointer<icu_62::UVector>&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet const>::moveFrom(icu_62::LocalPointer<icu_62::UnicodeSet const>&)
257
    /**
258
     * Swap pointers.
259
     * @param other other smart pointer
260
     * @stable ICU 56
261
     */
262
    void swap(LocalPointer<T> &other) U_NOEXCEPT {
263
        T *temp=LocalPointerBase<T>::ptr;
264
        LocalPointerBase<T>::ptr=other.ptr;
265
        other.ptr=temp;
266
    }
267
    /**
268
     * Non-member LocalPointer swap function.
269
     * @param p1 will get p2's pointer
270
     * @param p2 will get p1's pointer
271
     * @stable ICU 56
272
     */
273
    friend inline void swap(LocalPointer<T> &p1, LocalPointer<T> &p2) U_NOEXCEPT {
274
        p1.swap(p2);
275
    }
276
    /**
277
     * Deletes the object it owns,
278
     * and adopts (takes ownership of) the one passed in.
279
     * @param p simple pointer to an object that is adopted
280
     * @stable ICU 4.4
281
     */
282
0
    void adoptInstead(T *p) {
283
0
        delete LocalPointerBase<T>::ptr;
284
0
        LocalPointerBase<T>::ptr=p;
285
0
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::BreakIterator>::adoptInstead(icu_62::BreakIterator*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeString>::adoptInstead(icu_62::UnicodeString*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::CurrencyPluralInfo>::adoptInstead(icu_62::CurrencyPluralInfo*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem>::adoptInstead(icu_62::NumberingSystem*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalFormatProperties>::adoptInstead(icu_62::number::impl::DecimalFormatProperties*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols const>::adoptInstead(icu_62::DecimalFormatSymbols const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::LocalizedNumberFormatter const>::adoptInstead(icu_62::number::LocalizedNumberFormatter const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::adoptInstead(icu_62::UVector*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::NumberingSystem const>::adoptInstead(icu_62::NumberingSystem const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ParsedPatternInfo const>::adoptInstead(icu_62::number::impl::ParsedPatternInfo const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ScientificHandler const>::adoptInstead(icu_62::number::impl::ScientificHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::MutablePatternModifier>::adoptInstead(icu_62::number::impl::MutablePatternModifier*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::ImmutablePatternModifier const>::adoptInstead(icu_62::number::impl::ImmutablePatternModifier const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::LongNameHandler const>::adoptInstead(icu_62::number::impl::LongNameHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::CompactHandler const>::adoptInstead(icu_62::number::impl::CompactHandler const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::PluralRules const>::adoptInstead(icu_62::PluralRules const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UnicodeSet const>::adoptInstead(icu_62::UnicodeSet const*)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormat>::adoptInstead(icu_62::DecimalFormat*)
286
    /**
287
     * Deletes the object it owns,
288
     * and adopts (takes ownership of) the one passed in.
289
     *
290
     * If U_FAILURE(errorCode), then the current object is retained and the new one deleted.
291
     *
292
     * If U_SUCCESS(errorCode) but the input pointer is NULL,
293
     * then U_MEMORY_ALLOCATION_ERROR is set,
294
     * the current object is deleted, and NULL is set.
295
     *
296
     * @param p simple pointer to an object that is adopted
297
     * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR
298
     *     if p==NULL and no other failure code had been set
299
     * @stable ICU 55
300
     */
301
0
    void adoptInsteadAndCheckErrorCode(T *p, UErrorCode &errorCode) {
302
0
        if(U_SUCCESS(errorCode)) {
303
0
            delete LocalPointerBase<T>::ptr;
304
0
            LocalPointerBase<T>::ptr=p;
305
0
            if(p==NULL) {
306
0
                errorCode=U_MEMORY_ALLOCATION_ERROR;
307
0
            }
308
0
        } else {
309
0
            delete p;
310
0
        }
311
0
    }
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector32>::adoptInsteadAndCheckErrorCode(icu_62::UVector32*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::number::impl::DecimalFormatProperties>::adoptInsteadAndCheckErrorCode(icu_62::number::impl::DecimalFormatProperties*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols const>::adoptInsteadAndCheckErrorCode(icu_62::DecimalFormatSymbols const*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::UVector>::adoptInsteadAndCheckErrorCode(icu_62::UVector*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::DecimalFormatSymbols>::adoptInsteadAndCheckErrorCode(icu_62::DecimalFormatSymbols*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::Hashtable>::adoptInsteadAndCheckErrorCode(icu_62::Hashtable*, UErrorCode&)
Unexecuted instantiation: icu_62::LocalPointer<icu_62::MessageFormat>::adoptInsteadAndCheckErrorCode(icu_62::MessageFormat*, UErrorCode&)
312
};
313
314
/**
315
 * "Smart pointer" class, deletes objects via the C++ array delete[] operator.
316
 * For most methods see the LocalPointerBase base class.
317
 * Adds operator[] for array item access.
318
 *
319
 * Usage example:
320
 * \code
321
 * LocalArray<UnicodeString> a(new UnicodeString[2]);
322
 * a[0].append((char16_t)0x61);
323
 * if(some condition) { return; }  // no need to explicitly delete the array
324
 * a.adoptInstead(new UnicodeString[4]);
325
 * a[3].append((char16_t)0x62).append((char16_t)0x63).reverse();
326
 * // no need to explicitly delete the array
327
 * \endcode
328
 *
329
 * @see LocalPointerBase
330
 * @stable ICU 4.4
331
 */
332
template<typename T>
333
class LocalArray : public LocalPointerBase<T> {
334
public:
335
    using LocalPointerBase<T>::operator*;
336
    using LocalPointerBase<T>::operator->;
337
    /**
338
     * Constructor takes ownership.
339
     * @param p simple pointer to an array of T objects that is adopted
340
     * @stable ICU 4.4
341
     */
342
0
    explicit LocalArray(T *p=NULL) : LocalPointerBase<T>(p) {}
Unexecuted instantiation: icu_62::LocalArray<icu_62::Formattable>::LocalArray(icu_62::Formattable*)
Unexecuted instantiation: icu_62::LocalArray<icu_62::UnicodeString const>::LocalArray(icu_62::UnicodeString const*)
343
    /**
344
     * Constructor takes ownership and reports an error if NULL.
345
     *
346
     * This constructor is intended to be used with other-class constructors
347
     * that may report a failure UErrorCode,
348
     * so that callers need to check only for U_FAILURE(errorCode)
349
     * and not also separately for isNull().
350
     *
351
     * @param p simple pointer to an array of T objects that is adopted
352
     * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR
353
     *     if p==NULL and no other failure code had been set
354
     * @stable ICU 56
355
     */
356
0
    LocalArray(T *p, UErrorCode &errorCode) : LocalPointerBase<T>(p) {
357
0
        if(p==NULL && U_SUCCESS(errorCode)) {
358
0
            errorCode=U_MEMORY_ALLOCATION_ERROR;
359
0
        }
360
0
    }
361
    /**
362
     * Move constructor, leaves src with isNull().
363
     * @param src source smart pointer
364
     * @stable ICU 56
365
     */
366
    LocalArray(LocalArray<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
367
        src.ptr=NULL;
368
    }
369
    /**
370
     * Destructor deletes the array it owns.
371
     * @stable ICU 4.4
372
     */
373
0
    ~LocalArray() {
374
0
        delete[] LocalPointerBase<T>::ptr;
375
0
    }
Unexecuted instantiation: icu_62::LocalArray<icu_62::Formattable>::~LocalArray()
Unexecuted instantiation: icu_62::LocalArray<icu_62::UnicodeString const>::~LocalArray()
376
    /**
377
     * Move assignment operator, leaves src with isNull().
378
     * The behavior is undefined if *this and src are the same object.
379
     * @param src source smart pointer
380
     * @return *this
381
     * @stable ICU 56
382
     */
383
0
    LocalArray<T> &operator=(LocalArray<T> &&src) U_NOEXCEPT {
384
0
        return moveFrom(src);
385
0
    }
386
    // do not use #ifndef U_HIDE_DRAFT_API for moveFrom, needed by non-draft API
387
    /**
388
     * Move assignment, leaves src with isNull().
389
     * The behavior is undefined if *this and src are the same object.
390
     *
391
     * Can be called explicitly, does not need C++11 support.
392
     * @param src source smart pointer
393
     * @return *this
394
     * @draft ICU 56
395
     */
396
0
    LocalArray<T> &moveFrom(LocalArray<T> &src) U_NOEXCEPT {
397
0
        delete[] LocalPointerBase<T>::ptr;
398
0
        LocalPointerBase<T>::ptr=src.ptr;
399
0
        src.ptr=NULL;
400
0
        return *this;
401
0
    }
402
    /**
403
     * Swap pointers.
404
     * @param other other smart pointer
405
     * @stable ICU 56
406
     */
407
    void swap(LocalArray<T> &other) U_NOEXCEPT {
408
        T *temp=LocalPointerBase<T>::ptr;
409
        LocalPointerBase<T>::ptr=other.ptr;
410
        other.ptr=temp;
411
    }
412
    /**
413
     * Non-member LocalArray swap function.
414
     * @param p1 will get p2's pointer
415
     * @param p2 will get p1's pointer
416
     * @stable ICU 56
417
     */
418
    friend inline void swap(LocalArray<T> &p1, LocalArray<T> &p2) U_NOEXCEPT {
419
        p1.swap(p2);
420
    }
421
    /**
422
     * Deletes the array it owns,
423
     * and adopts (takes ownership of) the one passed in.
424
     * @param p simple pointer to an array of T objects that is adopted
425
     * @stable ICU 4.4
426
     */
427
0
    void adoptInstead(T *p) {
428
0
        delete[] LocalPointerBase<T>::ptr;
429
0
        LocalPointerBase<T>::ptr=p;
430
0
    }
431
    /**
432
     * Deletes the array it owns,
433
     * and adopts (takes ownership of) the one passed in.
434
     *
435
     * If U_FAILURE(errorCode), then the current array is retained and the new one deleted.
436
     *
437
     * If U_SUCCESS(errorCode) but the input pointer is NULL,
438
     * then U_MEMORY_ALLOCATION_ERROR is set,
439
     * the current array is deleted, and NULL is set.
440
     *
441
     * @param p simple pointer to an array of T objects that is adopted
442
     * @param errorCode in/out UErrorCode, set to U_MEMORY_ALLOCATION_ERROR
443
     *     if p==NULL and no other failure code had been set
444
     * @stable ICU 56
445
     */
446
    void adoptInsteadAndCheckErrorCode(T *p, UErrorCode &errorCode) {
447
        if(U_SUCCESS(errorCode)) {
448
            delete[] LocalPointerBase<T>::ptr;
449
            LocalPointerBase<T>::ptr=p;
450
            if(p==NULL) {
451
                errorCode=U_MEMORY_ALLOCATION_ERROR;
452
            }
453
        } else {
454
            delete[] p;
455
        }
456
    }
457
    /**
458
     * Array item access (writable).
459
     * No index bounds check.
460
     * @param i array index
461
     * @return reference to the array item
462
     * @stable ICU 4.4
463
     */
464
0
    T &operator[](ptrdiff_t i) const { return LocalPointerBase<T>::ptr[i]; }
Unexecuted instantiation: icu_62::LocalArray<icu_62::Formattable>::operator[](long) const
Unexecuted instantiation: icu_62::LocalArray<icu_62::UnicodeString const>::operator[](long) const
465
};
466
467
/**
468
 * \def U_DEFINE_LOCAL_OPEN_POINTER
469
 * "Smart pointer" definition macro, deletes objects via the closeFunction.
470
 * Defines a subclass of LocalPointerBase which works just
471
 * like LocalPointer<Type> except that this subclass will use the closeFunction
472
 * rather than the C++ delete operator.
473
 *
474
 * Usage example:
475
 * \code
476
 * LocalUCaseMapPointer csm(ucasemap_open(localeID, options, &errorCode));
477
 * utf8OutLength=ucasemap_utf8ToLower(csm.getAlias(),
478
 *     utf8Out, (int32_t)sizeof(utf8Out),
479
 *     utf8In, utf8InLength, &errorCode);
480
 * if(U_FAILURE(errorCode)) { return; }  // no need to explicitly delete the UCaseMap
481
 * \endcode
482
 *
483
 * @see LocalPointerBase
484
 * @see LocalPointer
485
 * @stable ICU 4.4
486
 */
487
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction) \
488
    class LocalPointerClassName : public LocalPointerBase<Type> { \
489
    public: \
490
        using LocalPointerBase<Type>::operator*; \
491
        using LocalPointerBase<Type>::operator->; \
492
0
        explicit LocalPointerClassName(Type *p=NULL) : LocalPointerBase<Type>(p) {} \
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::LocalUDataMemoryPointer(UDataMemory*)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::LocalUHashtablePointer(UHashtable*)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::LocalUBreakIteratorPointer(UBreakIterator*)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::LocalULocaleDisplayNamesPointer(ULocaleDisplayNames*)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::LocalUCaseMapPointer(UCaseMap*)
Unexecuted instantiation: icu_62::LocalUConverterPointer::LocalUConverterPointer(UConverter*)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::LocalUConverterSelectorPointer(UConverterSelector*)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::LocalUStringPrepProfilePointer(UStringPrepProfile*)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::LocalUListFormatterPointer(UListFormatter*)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::LocalULocaleDataPointer(ULocaleData*)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::LocalUPluralRulesPointer(UPluralRules*)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::LocalUNumberFormatterPointer(UNumberFormatter*)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::LocalUFormattedNumberPointer(UFormattedNumber*)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::LocalUCharsetDetectorPointer(UCharsetDetector*)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::LocalUMessageFormatPointer(void**)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::LocalURelativeDateTimeFormatterPointer(URelativeDateTimeFormatter*)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::LocalUStringSearchPointer(UStringSearch*)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::LocalUDateIntervalFormatPointer(UDateIntervalFormat*)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::LocalUNumberingSystemPointer(UNumberingSystem*)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::LocalUSpoofCheckerPointer(USpoofChecker*)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::LocalUSpoofCheckResultPointer(USpoofCheckResult*)
493
        LocalPointerClassName(LocalPointerClassName &&src) U_NOEXCEPT \
494
0
                : LocalPointerBase<Type>(src.ptr) { \
495
0
            src.ptr=NULL; \
496
0
        } \
Unexecuted instantiation: icu_62::LocalUResourceBundlePointer::LocalUResourceBundlePointer(icu_62::LocalUResourceBundlePointer&&)
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::LocalUDataMemoryPointer(icu_62::LocalUDataMemoryPointer&&)
Unexecuted instantiation: icu_62::LocalUTextPointer::LocalUTextPointer(icu_62::LocalUTextPointer&&)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::LocalUHashtablePointer(icu_62::LocalUHashtablePointer&&)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::LocalUBreakIteratorPointer(icu_62::LocalUBreakIteratorPointer&&)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::LocalULocaleDisplayNamesPointer(icu_62::LocalULocaleDisplayNamesPointer&&)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::LocalUCaseMapPointer(icu_62::LocalUCaseMapPointer&&)
Unexecuted instantiation: icu_62::LocalUConverterPointer::LocalUConverterPointer(icu_62::LocalUConverterPointer&&)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::LocalUConverterSelectorPointer(icu_62::LocalUConverterSelectorPointer&&)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::LocalUStringPrepProfilePointer(icu_62::LocalUStringPrepProfilePointer&&)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::LocalUListFormatterPointer(icu_62::LocalUListFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::LocalULocaleDataPointer(icu_62::LocalULocaleDataPointer&&)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::LocalUPluralRulesPointer(icu_62::LocalUPluralRulesPointer&&)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::LocalUNumberFormatterPointer(icu_62::LocalUNumberFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::LocalUFormattedNumberPointer(icu_62::LocalUFormattedNumberPointer&&)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::LocalUCharsetDetectorPointer(icu_62::LocalUCharsetDetectorPointer&&)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::LocalUMessageFormatPointer(icu_62::LocalUMessageFormatPointer&&)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::LocalURelativeDateTimeFormatterPointer(icu_62::LocalURelativeDateTimeFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::LocalUStringSearchPointer(icu_62::LocalUStringSearchPointer&&)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::LocalUDateIntervalFormatPointer(icu_62::LocalUDateIntervalFormatPointer&&)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::LocalUNumberingSystemPointer(icu_62::LocalUNumberingSystemPointer&&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::LocalUSpoofCheckerPointer(icu_62::LocalUSpoofCheckerPointer&&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::LocalUSpoofCheckResultPointer(icu_62::LocalUSpoofCheckResultPointer&&)
497
0
        ~LocalPointerClassName() { if (ptr != NULL) { closeFunction(ptr); } } \
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::~LocalUDataMemoryPointer()
Unexecuted instantiation: icu_62::LocalUHashtablePointer::~LocalUHashtablePointer()
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::~LocalUBreakIteratorPointer()
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::~LocalULocaleDisplayNamesPointer()
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::~LocalUCaseMapPointer()
Unexecuted instantiation: icu_62::LocalUConverterPointer::~LocalUConverterPointer()
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::~LocalUConverterSelectorPointer()
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::~LocalUStringPrepProfilePointer()
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::~LocalUListFormatterPointer()
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::~LocalULocaleDataPointer()
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::~LocalUPluralRulesPointer()
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::~LocalUNumberFormatterPointer()
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::~LocalUFormattedNumberPointer()
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::~LocalUCharsetDetectorPointer()
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::~LocalUMessageFormatPointer()
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::~LocalURelativeDateTimeFormatterPointer()
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::~LocalUStringSearchPointer()
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::~LocalUDateIntervalFormatPointer()
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::~LocalUNumberingSystemPointer()
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::~LocalUSpoofCheckerPointer()
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::~LocalUSpoofCheckResultPointer()
498
0
        LocalPointerClassName &operator=(LocalPointerClassName &&src) U_NOEXCEPT { \
499
0
            return moveFrom(src); \
500
0
        } \
Unexecuted instantiation: icu_62::LocalUResourceBundlePointer::operator=(icu_62::LocalUResourceBundlePointer&&)
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::operator=(icu_62::LocalUDataMemoryPointer&&)
Unexecuted instantiation: icu_62::LocalUTextPointer::operator=(icu_62::LocalUTextPointer&&)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::operator=(icu_62::LocalUHashtablePointer&&)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::operator=(icu_62::LocalUBreakIteratorPointer&&)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::operator=(icu_62::LocalULocaleDisplayNamesPointer&&)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::operator=(icu_62::LocalUCaseMapPointer&&)
Unexecuted instantiation: icu_62::LocalUConverterPointer::operator=(icu_62::LocalUConverterPointer&&)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::operator=(icu_62::LocalUConverterSelectorPointer&&)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::operator=(icu_62::LocalUStringPrepProfilePointer&&)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::operator=(icu_62::LocalUListFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::operator=(icu_62::LocalULocaleDataPointer&&)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::operator=(icu_62::LocalUPluralRulesPointer&&)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::operator=(icu_62::LocalUNumberFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::operator=(icu_62::LocalUFormattedNumberPointer&&)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::operator=(icu_62::LocalUCharsetDetectorPointer&&)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::operator=(icu_62::LocalUMessageFormatPointer&&)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::operator=(icu_62::LocalURelativeDateTimeFormatterPointer&&)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::operator=(icu_62::LocalUStringSearchPointer&&)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::operator=(icu_62::LocalUDateIntervalFormatPointer&&)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::operator=(icu_62::LocalUNumberingSystemPointer&&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::operator=(icu_62::LocalUSpoofCheckerPointer&&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::operator=(icu_62::LocalUSpoofCheckResultPointer&&)
501
0
        LocalPointerClassName &moveFrom(LocalPointerClassName &src) U_NOEXCEPT { \
502
0
            if (ptr != NULL) { closeFunction(ptr); } \
503
0
            LocalPointerBase<Type>::ptr=src.ptr; \
504
0
            src.ptr=NULL; \
505
0
            return *this; \
506
0
        } \
Unexecuted instantiation: icu_62::LocalUResourceBundlePointer::moveFrom(icu_62::LocalUResourceBundlePointer&)
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::moveFrom(icu_62::LocalUDataMemoryPointer&)
Unexecuted instantiation: icu_62::LocalUTextPointer::moveFrom(icu_62::LocalUTextPointer&)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::moveFrom(icu_62::LocalUHashtablePointer&)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::moveFrom(icu_62::LocalUBreakIteratorPointer&)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::moveFrom(icu_62::LocalULocaleDisplayNamesPointer&)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::moveFrom(icu_62::LocalUCaseMapPointer&)
Unexecuted instantiation: icu_62::LocalUConverterPointer::moveFrom(icu_62::LocalUConverterPointer&)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::moveFrom(icu_62::LocalUConverterSelectorPointer&)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::moveFrom(icu_62::LocalUStringPrepProfilePointer&)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::moveFrom(icu_62::LocalUListFormatterPointer&)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::moveFrom(icu_62::LocalULocaleDataPointer&)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::moveFrom(icu_62::LocalUPluralRulesPointer&)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::moveFrom(icu_62::LocalUNumberFormatterPointer&)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::moveFrom(icu_62::LocalUFormattedNumberPointer&)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::moveFrom(icu_62::LocalUCharsetDetectorPointer&)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::moveFrom(icu_62::LocalUMessageFormatPointer&)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::moveFrom(icu_62::LocalURelativeDateTimeFormatterPointer&)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::moveFrom(icu_62::LocalUStringSearchPointer&)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::moveFrom(icu_62::LocalUDateIntervalFormatPointer&)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::moveFrom(icu_62::LocalUNumberingSystemPointer&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::moveFrom(icu_62::LocalUSpoofCheckerPointer&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::moveFrom(icu_62::LocalUSpoofCheckResultPointer&)
507
0
        void swap(LocalPointerClassName &other) U_NOEXCEPT { \
508
0
            Type *temp=LocalPointerBase<Type>::ptr; \
509
0
            LocalPointerBase<Type>::ptr=other.ptr; \
510
0
            other.ptr=temp; \
511
0
        } \
Unexecuted instantiation: icu_62::LocalUResourceBundlePointer::swap(icu_62::LocalUResourceBundlePointer&)
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::swap(icu_62::LocalUDataMemoryPointer&)
Unexecuted instantiation: icu_62::LocalUTextPointer::swap(icu_62::LocalUTextPointer&)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::swap(icu_62::LocalUHashtablePointer&)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::swap(icu_62::LocalUBreakIteratorPointer&)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::swap(icu_62::LocalULocaleDisplayNamesPointer&)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::swap(icu_62::LocalUCaseMapPointer&)
Unexecuted instantiation: icu_62::LocalUConverterPointer::swap(icu_62::LocalUConverterPointer&)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::swap(icu_62::LocalUConverterSelectorPointer&)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::swap(icu_62::LocalUStringPrepProfilePointer&)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::swap(icu_62::LocalUListFormatterPointer&)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::swap(icu_62::LocalULocaleDataPointer&)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::swap(icu_62::LocalUPluralRulesPointer&)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::swap(icu_62::LocalUNumberFormatterPointer&)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::swap(icu_62::LocalUFormattedNumberPointer&)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::swap(icu_62::LocalUCharsetDetectorPointer&)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::swap(icu_62::LocalUMessageFormatPointer&)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::swap(icu_62::LocalURelativeDateTimeFormatterPointer&)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::swap(icu_62::LocalUStringSearchPointer&)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::swap(icu_62::LocalUDateIntervalFormatPointer&)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::swap(icu_62::LocalUNumberingSystemPointer&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::swap(icu_62::LocalUSpoofCheckerPointer&)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::swap(icu_62::LocalUSpoofCheckResultPointer&)
512
0
        friend inline void swap(LocalPointerClassName &p1, LocalPointerClassName &p2) U_NOEXCEPT { \
513
0
            p1.swap(p2); \
514
0
        } \
Unexecuted instantiation: icu_62::swap(icu_62::LocalUResourceBundlePointer&, icu_62::LocalUResourceBundlePointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUDataMemoryPointer&, icu_62::LocalUDataMemoryPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUTextPointer&, icu_62::LocalUTextPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUHashtablePointer&, icu_62::LocalUHashtablePointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUBreakIteratorPointer&, icu_62::LocalUBreakIteratorPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalULocaleDisplayNamesPointer&, icu_62::LocalULocaleDisplayNamesPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUCaseMapPointer&, icu_62::LocalUCaseMapPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUConverterPointer&, icu_62::LocalUConverterPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUConverterSelectorPointer&, icu_62::LocalUConverterSelectorPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUStringPrepProfilePointer&, icu_62::LocalUStringPrepProfilePointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUListFormatterPointer&, icu_62::LocalUListFormatterPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalULocaleDataPointer&, icu_62::LocalULocaleDataPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUPluralRulesPointer&, icu_62::LocalUPluralRulesPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUNumberFormatterPointer&, icu_62::LocalUNumberFormatterPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUFormattedNumberPointer&, icu_62::LocalUFormattedNumberPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUCharsetDetectorPointer&, icu_62::LocalUCharsetDetectorPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUMessageFormatPointer&, icu_62::LocalUMessageFormatPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalURelativeDateTimeFormatterPointer&, icu_62::LocalURelativeDateTimeFormatterPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUStringSearchPointer&, icu_62::LocalUStringSearchPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUDateIntervalFormatPointer&, icu_62::LocalUDateIntervalFormatPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUNumberingSystemPointer&, icu_62::LocalUNumberingSystemPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUSpoofCheckerPointer&, icu_62::LocalUSpoofCheckerPointer&)
Unexecuted instantiation: icu_62::swap(icu_62::LocalUSpoofCheckResultPointer&, icu_62::LocalUSpoofCheckResultPointer&)
515
0
        void adoptInstead(Type *p) { \
516
0
            if (ptr != NULL) { closeFunction(ptr); } \
517
0
            ptr=p; \
518
0
        } \
Unexecuted instantiation: icu_62::LocalUDataMemoryPointer::adoptInstead(UDataMemory*)
Unexecuted instantiation: icu_62::LocalUHashtablePointer::adoptInstead(UHashtable*)
Unexecuted instantiation: icu_62::LocalUBreakIteratorPointer::adoptInstead(UBreakIterator*)
Unexecuted instantiation: icu_62::LocalULocaleDisplayNamesPointer::adoptInstead(ULocaleDisplayNames*)
Unexecuted instantiation: icu_62::LocalUCaseMapPointer::adoptInstead(UCaseMap*)
Unexecuted instantiation: icu_62::LocalUConverterPointer::adoptInstead(UConverter*)
Unexecuted instantiation: icu_62::LocalUConverterSelectorPointer::adoptInstead(UConverterSelector*)
Unexecuted instantiation: icu_62::LocalUStringPrepProfilePointer::adoptInstead(UStringPrepProfile*)
Unexecuted instantiation: icu_62::LocalUListFormatterPointer::adoptInstead(UListFormatter*)
Unexecuted instantiation: icu_62::LocalULocaleDataPointer::adoptInstead(ULocaleData*)
Unexecuted instantiation: icu_62::LocalUPluralRulesPointer::adoptInstead(UPluralRules*)
Unexecuted instantiation: icu_62::LocalUNumberFormatterPointer::adoptInstead(UNumberFormatter*)
Unexecuted instantiation: icu_62::LocalUFormattedNumberPointer::adoptInstead(UFormattedNumber*)
Unexecuted instantiation: icu_62::LocalUCharsetDetectorPointer::adoptInstead(UCharsetDetector*)
Unexecuted instantiation: icu_62::LocalUMessageFormatPointer::adoptInstead(void**)
Unexecuted instantiation: icu_62::LocalURelativeDateTimeFormatterPointer::adoptInstead(URelativeDateTimeFormatter*)
Unexecuted instantiation: icu_62::LocalUStringSearchPointer::adoptInstead(UStringSearch*)
Unexecuted instantiation: icu_62::LocalUDateIntervalFormatPointer::adoptInstead(UDateIntervalFormat*)
Unexecuted instantiation: icu_62::LocalUNumberingSystemPointer::adoptInstead(UNumberingSystem*)
Unexecuted instantiation: icu_62::LocalUSpoofCheckerPointer::adoptInstead(USpoofChecker*)
Unexecuted instantiation: icu_62::LocalUSpoofCheckResultPointer::adoptInstead(USpoofCheckResult*)
519
    }
520
521
U_NAMESPACE_END
522
523
#endif  /* U_SHOW_CPLUSPLUS_API */
524
#endif  /* __LOCALPOINTER_H__ */