ICU-20511 Merge release-64-1 to master
This commit is contained in:
commit
cab01e522e
@ -181,22 +181,6 @@
|
||||
<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth) const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 61</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Appendable& icu::number::FormattedNumber::appendTo(Appendable&, UErrorCode&) const</td><td class="">Draft<br>ICU 62</td><td>Draft<br>
|
||||
<span class="verchange"><span>ICU 64</span></span></td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&) const</td><td class="">Draft<br>ICU 62</td><td>Draft<br>
|
||||
<span class="verchange"><span>ICU 64</span></span></td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Appendable& icu::number::FormattedNumberRange::appendTo(Appendable&, UErrorCode&) const</td><td class="">Draft<br>ICU 63</td><td>Draft<br>
|
||||
<span class="verchange"><span>ICU 64</span></span></td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::toString(UErrorCode&) const</td><td class="">Draft<br>ICU 63</td><td>Draft<br>
|
||||
<span class="verchange"><span>ICU 64</span></span></td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 61</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
@ -1883,155 +1867,161 @@
|
||||
<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Appendable& icu::number::FormattedNumber::appendTo(Appendable&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptPerUnit(icu::MeasureUnit*) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptPerUnit(icu::MeasureUnit*)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols(NumberingSystem*) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols(NumberingSystem*)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptUnit(icu::MeasureUnit*) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptUnit(icu::MeasureUnit*)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::decimal(UNumberDecimalSeparatorDisplay) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::decimal(UNumberDecimalSeparatorDisplay)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::grouping(UNumberGroupingStrategy) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::grouping(UNumberGroupingStrategy)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::integerWidth(const IntegerWidth&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::integerWidth(const IntegerWidth&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::notation(const Notation&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::notation(const Notation&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::perUnit(const icu::MeasureUnit&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::perUnit(const icu::MeasureUnit&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::precision(const Precision&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::precision(const Precision&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::roundingMode(UNumberFormatRoundingMode) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::roundingMode(UNumberFormatRoundingMode)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::scale(const Scale&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::scale(const Scale&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::sign(UNumberSignDisplay) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::sign(UNumberSignDisplay)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::symbols(const DecimalFormatSymbols&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::symbols(const DecimalFormatSymbols&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unit(const icu::MeasureUnit&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unit(const icu::MeasureUnit&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unitWidth(UNumberUnitWidth) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unitWidth(UNumberUnitWidth)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">FormattedNumber& icu::number::FormattedNumber::operator=(FormattedNumber&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter& icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter& icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Scale& icu::number::Scale::operator=(Scale&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">Scale& icu::number::Scale::operator=(const Scale&)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings< Derived >::copyErrorTo(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings< Derived >::toSkeleton(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
@ -2159,86 +2149,92 @@
|
||||
<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Appendable& icu::number::FormattedNumberRange::appendTo(Appendable&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::collapse(UNumberRangeCollapse) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::collapse(UNumberRangeCollapse)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::identityFallback(UNumberRangeIdentityFallback) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::identityFallback(UNumberRangeIdentityFallback)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterBoth(UnlocalizedNumberFormatter&&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterBoth(UnlocalizedNumberFormatter&&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterBoth(const UnlocalizedNumberFormatter&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterBoth(const UnlocalizedNumberFormatter&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterFirst(UnlocalizedNumberFormatter&&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterFirst(UnlocalizedNumberFormatter&&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterFirst(const UnlocalizedNumberFormatter&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterFirst(const UnlocalizedNumberFormatter&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterSecond(UnlocalizedNumberFormatter&&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterSecond(UnlocalizedNumberFormatter&&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterSecond(const UnlocalizedNumberFormatter&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings< Derived >::numberFormatterSecond(const UnlocalizedNumberFormatter&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange icu::number::LocalizedNumberRangeFormatter::formatFormattableRange(const Formattable&, const Formattable&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange& icu::number::FormattedNumberRange::operator=(FormattedNumberRange&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&) const&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&)&&</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter& icu::number::LocalizedNumberRangeFormatter::operator=(LocalizedNumberRangeFormatter&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter& icu::number::LocalizedNumberRangeFormatter::operator=(const LocalizedNumberRangeFormatter&)</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::FormattedNumberRange::nextFieldPosition(FieldPosition&, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::NumberRangeFormatterSettings< Derived >::copyErrorTo(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UNumberRangeIdentityResult icu::number::FormattedNumberRange::getIdentityResult(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getFirstDecimal(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getSecondDecimal(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row1">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::toString(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
<tr class="row0">
|
||||
<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter& icu::number::UnlocalizedNumberRangeFormatter::operator=(UnlocalizedNumberRangeFormatter&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 63</td>
|
||||
</tr>
|
||||
@ -2531,7 +2527,7 @@
|
||||
<a href="#_top">(jump back to top)</a>
|
||||
<hr>
|
||||
<p>
|
||||
<i><font size="-1">Contents generated by StableAPI tool on Wed Feb 27 14:05:03 PST 2019<br>Copyright (C) 2019, International Business Machines Corporation, All Rights Reserved.</font></i>
|
||||
<i><font size="-1">Contents generated by StableAPI tool on Sun Mar 24 10:57:24 PDT 2019<br>Copyright (C) 2019, International Business Machines Corporation, All Rights Reserved.</font></i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -298,7 +298,7 @@ public:
|
||||
*/
|
||||
MaybeStackArray(int32_t newCapacity) : MaybeStackArray() {
|
||||
if (capacity < newCapacity) { resize(newCapacity); }
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Destructor deletes the array (if owned).
|
||||
*/
|
||||
|
@ -103,8 +103,8 @@ private:
|
||||
int32_t cpLengths[POSSIBLE_WORD_LIST_MAX]; // Word Lengths, in code points.
|
||||
|
||||
public:
|
||||
PossibleWord() : count(0), prefix(0), offset(-1), mark(0), current(0) {};
|
||||
~PossibleWord() {};
|
||||
PossibleWord() : count(0), prefix(0), offset(-1), mark(0), current(0) {}
|
||||
~PossibleWord() {}
|
||||
|
||||
// Fill the list of candidates if needed, select the longest, and return the number found
|
||||
int32_t candidates( UText *text, DictionaryMatcher *dict, int32_t rangeEnd );
|
||||
@ -118,13 +118,13 @@ public:
|
||||
|
||||
// Return the longest prefix this candidate location shares with a dictionary word
|
||||
// Return value is in code points.
|
||||
int32_t longestPrefix() { return prefix; };
|
||||
int32_t longestPrefix() { return prefix; }
|
||||
|
||||
// Mark the current candidate as the one we like
|
||||
void markCurrent() { mark = current; };
|
||||
void markCurrent() { mark = current; }
|
||||
|
||||
// Get length in code points of the marked word.
|
||||
int32_t markedCPLength() { return cpLengths[mark]; };
|
||||
int32_t markedCPLength() { return cpLengths[mark]; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
*/
|
||||
class U_COMMON_API DictionaryMatcher : public UMemory {
|
||||
public:
|
||||
DictionaryMatcher() {};
|
||||
DictionaryMatcher() {}
|
||||
virtual ~DictionaryMatcher();
|
||||
// this should emulate CompactTrieDictionary::matches()
|
||||
/* @param text The text in which to look for matching words. Matching begins
|
||||
|
@ -720,7 +720,7 @@ struct LookAheadResults {
|
||||
int32_t fPositions[8];
|
||||
int16_t fKeys[8];
|
||||
|
||||
LookAheadResults() : fUsedSlotLimit(0), fPositions(), fKeys() {};
|
||||
LookAheadResults() : fUsedSlotLimit(0), fPositions(), fKeys() {}
|
||||
|
||||
int32_t getPosition(int16_t key) {
|
||||
for (int32_t i=0; i<fUsedSlotLimit; ++i) {
|
||||
|
@ -95,7 +95,7 @@ class RuleBasedBreakIterator::BreakCache: public UMemory {
|
||||
fTextIdx = fBI->fPosition = fBoundaries[fBufIdx];
|
||||
fBI->fRuleStatusIndex = fStatuses[fBufIdx];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
void nextOL();
|
||||
@ -178,7 +178,7 @@ class RuleBasedBreakIterator::BreakCache: public UMemory {
|
||||
void dumpCache();
|
||||
|
||||
private:
|
||||
static inline int32_t modChunkSize(int index) { return index & (CACHE_SIZE - 1); };
|
||||
static inline int32_t modChunkSize(int index) { return index & (CACHE_SIZE - 1); }
|
||||
|
||||
static constexpr int32_t CACHE_SIZE = 128;
|
||||
static_assert((CACHE_SIZE & (CACHE_SIZE-1)) == 0, "CACHE_SIZE must be power of two.");
|
||||
|
@ -54,7 +54,7 @@ public:
|
||||
struct RBBIRuleChar {
|
||||
UChar32 fChar;
|
||||
UBool fEscaped;
|
||||
RBBIRuleChar() : fChar(0), fEscaped(FALSE) {};
|
||||
RBBIRuleChar() : fChar(0), fEscaped(FALSE) {}
|
||||
};
|
||||
|
||||
RBBIRuleScanner(RBBIRuleBuilder *rb);
|
||||
|
@ -95,8 +95,8 @@ inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) {
|
||||
struct UInitOnce {
|
||||
u_atomic_int32_t fState;
|
||||
UErrorCode fErrCode;
|
||||
void reset() {fState = 0;};
|
||||
UBool isReset() {return umtx_loadAcquire(fState) == 0;};
|
||||
void reset() {fState = 0;}
|
||||
UBool isReset() {return umtx_loadAcquire(fState) == 0;}
|
||||
// Note: isReset() is used by service registration code.
|
||||
// Thread safety of this usage needs review.
|
||||
};
|
||||
|
@ -137,7 +137,7 @@ class LocaleCacheKey : public CacheKey<T> {
|
||||
protected:
|
||||
Locale fLoc;
|
||||
public:
|
||||
LocaleCacheKey(const Locale &loc) : fLoc(loc) {};
|
||||
LocaleCacheKey(const Locale &loc) : fLoc(loc) {}
|
||||
LocaleCacheKey(const LocaleCacheKey<T> &other)
|
||||
: CacheKey<T>(other), fLoc(other.fLoc) { }
|
||||
virtual ~LocaleCacheKey() { }
|
||||
|
@ -36,9 +36,9 @@ U_NAMESPACE_BEGIN
|
||||
|
||||
struct CSRecognizerInfo : public UMemory {
|
||||
CSRecognizerInfo(CharsetRecognizer *recognizer, UBool isDefaultEnabled)
|
||||
: recognizer(recognizer), isDefaultEnabled(isDefaultEnabled) {};
|
||||
: recognizer(recognizer), isDefaultEnabled(isDefaultEnabled) {}
|
||||
|
||||
~CSRecognizerInfo() {delete recognizer;};
|
||||
~CSRecognizerInfo() {delete recognizer;}
|
||||
|
||||
CharsetRecognizer *recognizer;
|
||||
UBool isDefaultEnabled;
|
||||
|
@ -732,7 +732,11 @@ CharString *Formattable::internalGetCharString(UErrorCode &status) {
|
||||
// Older ICUs called uprv_decNumberToString here, which is not exactly the same as
|
||||
// DecimalQuantity::toScientificString(). The biggest difference is that uprv_decNumberToString does
|
||||
// not print scientific notation for magnitudes greater than -5 and smaller than some amount (+5?).
|
||||
if (fDecimalQuantity->isZero()) {
|
||||
if (fDecimalQuantity->isInfinite()) {
|
||||
fDecimalStr->append("Infinity", status);
|
||||
} else if (fDecimalQuantity->isNaN()) {
|
||||
fDecimalStr->append("NaN", status);
|
||||
} else if (fDecimalQuantity->isZero()) {
|
||||
fDecimalStr->append("0", -1, status);
|
||||
} else if (fType==kLong || fType==kInt64 || // use toPlainString for integer types
|
||||
(fDecimalQuantity->getMagnitude() != INT32_MIN && std::abs(fDecimalQuantity->getMagnitude()) < 5)) {
|
||||
|
@ -160,6 +160,11 @@ void DecimalQuantity::applyMaxInteger(int32_t maxInt) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (maxInt <= scale) {
|
||||
setBcdToZero();
|
||||
return;
|
||||
}
|
||||
|
||||
int32_t magnitude = getMagnitude();
|
||||
if (maxInt <= magnitude) {
|
||||
popFromLeft(magnitude - maxInt + 1);
|
||||
@ -983,6 +988,7 @@ void DecimalQuantity::shiftRight(int32_t numDigits) {
|
||||
}
|
||||
|
||||
void DecimalQuantity::popFromLeft(int32_t numDigits) {
|
||||
U_ASSERT(numDigits <= precision);
|
||||
if (usingBytes) {
|
||||
int i = precision - 1;
|
||||
for (; i >= precision - numDigits; i--) {
|
||||
|
@ -275,7 +275,7 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory {
|
||||
inline bool isUsingBytes() { return usingBytes; }
|
||||
|
||||
/** Visible for testing */
|
||||
inline bool isExplicitExactDouble() { return explicitExactDouble; };
|
||||
inline bool isExplicitExactDouble() { return explicitExactDouble; }
|
||||
|
||||
bool operator==(const DecimalQuantity& other) const;
|
||||
|
||||
|
@ -16,6 +16,7 @@ namespace number {
|
||||
|
||||
UPRV_FORMATTED_VALUE_SUBCLASS_AUTO_IMPL(FormattedNumber)
|
||||
|
||||
#define UPRV_NOARG
|
||||
|
||||
UBool FormattedNumber::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD(FALSE)
|
||||
@ -29,12 +30,12 @@ void FormattedNumber::getAllFieldPositions(FieldPositionIterator& iterator, UErr
|
||||
|
||||
void FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih,
|
||||
UErrorCode& status) const {
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD()
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG)
|
||||
fData->getAllFieldPositions(fpih, status);
|
||||
}
|
||||
|
||||
void FormattedNumber::getDecimalQuantity(impl::DecimalQuantity& output, UErrorCode& status) const {
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD()
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG)
|
||||
output = fData->quantity;
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor
|
||||
int32_t offset = 0;
|
||||
|
||||
explicit ParserState(const UnicodeString& _pattern)
|
||||
: pattern(_pattern) {};
|
||||
: pattern(_pattern) {}
|
||||
|
||||
ParserState& operator=(ParserState&& src) U_NOEXCEPT {
|
||||
// Leave pattern reference alone; it will continue to point to the same place in memory,
|
||||
|
@ -239,7 +239,7 @@ class U_I18N_API NumberParseMatcher {
|
||||
*/
|
||||
virtual void postProcess(ParsedNumber&) const {
|
||||
// Default implementation: no-op
|
||||
};
|
||||
}
|
||||
|
||||
// String for debugging
|
||||
virtual UnicodeString toString() const = 0;
|
||||
|
@ -377,6 +377,7 @@ LocalizedNumberRangeFormatter::getFormatter(UErrorCode& status) const {
|
||||
|
||||
UPRV_FORMATTED_VALUE_SUBCLASS_AUTO_IMPL(FormattedNumberRange)
|
||||
|
||||
#define UPRV_NOARG
|
||||
|
||||
UBool FormattedNumberRange::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD(FALSE)
|
||||
@ -391,7 +392,7 @@ void FormattedNumberRange::getAllFieldPositions(FieldPositionIterator& iterator,
|
||||
|
||||
void FormattedNumberRange::getAllFieldPositionsImpl(
|
||||
FieldPositionIteratorHandler& fpih, UErrorCode& status) const {
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD()
|
||||
UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG)
|
||||
fData->getAllFieldPositions(fpih, status);
|
||||
}
|
||||
|
||||
|
@ -260,8 +260,8 @@ void NumberingSystem::setName(const char *n) {
|
||||
if ( n == nullptr ) {
|
||||
name[0] = (char) 0;
|
||||
} else {
|
||||
uprv_strncpy(name,n,NUMSYS_NAME_CAPACITY);
|
||||
name[NUMSYS_NAME_CAPACITY] = '\0'; // Make sure it is null terminated.
|
||||
uprv_strncpy(name,n,kInternalNumSysNameCapacity);
|
||||
name[kInternalNumSysNameCapacity] = '\0'; // Make sure it is null terminated.
|
||||
}
|
||||
}
|
||||
UBool NumberingSystem::isAlgorithmic() const {
|
||||
|
@ -40,7 +40,7 @@ class U_I18N_API ScriptSet: public UMemory {
|
||||
~ScriptSet();
|
||||
|
||||
UBool operator == (const ScriptSet &other) const;
|
||||
UBool operator != (const ScriptSet &other) const {return !(*this == other);};
|
||||
UBool operator != (const ScriptSet &other) const {return !(*this == other);}
|
||||
ScriptSet & operator = (const ScriptSet &other);
|
||||
|
||||
UBool test(UScriptCode script, UErrorCode &status) const;
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
static TimeZoneGenericNames* createInstance(const Locale& locale, UErrorCode& status);
|
||||
|
||||
virtual UBool operator==(const TimeZoneGenericNames& other) const;
|
||||
virtual UBool operator!=(const TimeZoneGenericNames& other) const {return !operator==(other);};
|
||||
virtual UBool operator!=(const TimeZoneGenericNames& other) const {return !operator==(other);}
|
||||
virtual TimeZoneGenericNames* clone() const;
|
||||
|
||||
UnicodeString& getDisplayName(const TimeZone& tz, UTimeZoneGenericNameType type,
|
||||
|
@ -108,7 +108,7 @@ public:
|
||||
virtual ~TimeZoneNamesDelegate();
|
||||
|
||||
virtual UBool operator==(const TimeZoneNames& other) const;
|
||||
virtual UBool operator!=(const TimeZoneNames& other) const {return !operator==(other);};
|
||||
virtual UBool operator!=(const TimeZoneNames& other) const {return !operator==(other);}
|
||||
virtual TimeZoneNames* clone() const;
|
||||
|
||||
StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const;
|
||||
|
@ -651,7 +651,7 @@ private:
|
||||
/**
|
||||
* No assignment.
|
||||
*/
|
||||
AlphabeticIndex &operator =(const AlphabeticIndex & /*other*/) { return *this;};
|
||||
AlphabeticIndex &operator =(const AlphabeticIndex & /*other*/) { return *this;}
|
||||
|
||||
/**
|
||||
* No Equality operators.
|
||||
|
@ -60,7 +60,7 @@ class U_I18N_API FormattedDateInterval : public UMemory, public FormattedValue {
|
||||
* Default constructor; makes an empty FormattedDateInterval.
|
||||
* @draft ICU 64
|
||||
*/
|
||||
FormattedDateInterval() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {};
|
||||
FormattedDateInterval() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
|
||||
|
||||
/**
|
||||
* Move constructor: Leaves the source FormattedDateInterval in an undefined state.
|
||||
|
@ -122,7 +122,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory {
|
||||
*/
|
||||
inline int32_t getCategory() const {
|
||||
return fCategory;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the field for the current position.
|
||||
@ -135,7 +135,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory {
|
||||
*/
|
||||
inline int32_t getField() const {
|
||||
return fField;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the INCLUSIVE start index for the current position.
|
||||
@ -147,7 +147,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory {
|
||||
*/
|
||||
inline int32_t getStart() const {
|
||||
return fStart;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the EXCLUSIVE end index stored for the current position.
|
||||
@ -159,7 +159,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory {
|
||||
*/
|
||||
inline int32_t getLimit() const {
|
||||
return fLimit;
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//// The following methods are for FormattedValue implementers; ////
|
||||
|
@ -85,7 +85,7 @@ class U_I18N_API FormattedList : public UMemory, public FormattedValue {
|
||||
* Default constructor; makes an empty FormattedList.
|
||||
* @draft ICU 64
|
||||
*/
|
||||
FormattedList() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {};
|
||||
FormattedList() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
|
||||
|
||||
/**
|
||||
* Move constructor: Leaves the source FormattedList in an undefined state.
|
||||
|
@ -113,7 +113,7 @@ class IntegerWidth;
|
||||
|
||||
namespace impl {
|
||||
|
||||
#ifndef U_HIDE_INTERNAL_API
|
||||
// can't be #ifndef U_HIDE_INTERNAL_API; referenced throughout this file in public classes
|
||||
/**
|
||||
* Datatype for minimum/maximum fraction digits. Must be able to hold kMaxIntFracSig.
|
||||
*
|
||||
@ -121,14 +121,14 @@ namespace impl {
|
||||
*/
|
||||
typedef int16_t digits_t;
|
||||
|
||||
// can't be #ifndef U_HIDE_INTERNAL_API; needed for struct initialization
|
||||
/**
|
||||
* Use a default threshold of 3. This means that the third time .format() is called, the data structures get built
|
||||
* using the "safe" code path. The first two calls to .format() will trigger the unsafe code path.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
static constexpr int32_t DEFAULT_THRESHOLD = 3;
|
||||
#endif /* U_HIDE_INTERNAL_API */
|
||||
static constexpr int32_t kInternalDefaultThreshold = 3;
|
||||
|
||||
// Forward declarations:
|
||||
class Padder;
|
||||
@ -1411,7 +1411,7 @@ struct U_I18N_API MacroProps : public UMemory {
|
||||
const CurrencySymbols* currencySymbols = nullptr; // no ownership
|
||||
|
||||
/** @internal */
|
||||
int32_t threshold = DEFAULT_THRESHOLD;
|
||||
int32_t threshold = kInternalDefaultThreshold;
|
||||
|
||||
/** @internal */
|
||||
Locale locale;
|
||||
@ -2411,7 +2411,7 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
|
||||
* @draft ICU 64
|
||||
*/
|
||||
FormattedNumber()
|
||||
: fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {};
|
||||
: fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
|
||||
|
||||
/**
|
||||
* Move constructor: Leaves the source FormattedNumber in an undefined state.
|
||||
|
@ -481,7 +481,7 @@ class U_I18N_API NumberRangeFormatterSettings {
|
||||
}
|
||||
fMacros.copyErrorTo(outErrorCode);
|
||||
return U_FAILURE(outErrorCode);
|
||||
};
|
||||
}
|
||||
|
||||
// NOTE: Uses default copy and move constructors.
|
||||
|
||||
|
@ -20,16 +20,6 @@
|
||||
|
||||
#include "unicode/utypes.h"
|
||||
|
||||
#ifndef U_HIDE_INTERNAL_API
|
||||
/**
|
||||
* \def NUMSYS_NAME_CAPACITY
|
||||
* Size of a numbering system name.
|
||||
* @internal
|
||||
*/
|
||||
#define NUMSYS_NAME_CAPACITY 8
|
||||
#endif /* U_HIDE_INTERNAL_API */
|
||||
|
||||
|
||||
/**
|
||||
* \file
|
||||
* \brief C++ API: NumberingSystem object
|
||||
@ -37,12 +27,18 @@
|
||||
|
||||
#if !UCONFIG_NO_FORMATTING
|
||||
|
||||
|
||||
#include "unicode/format.h"
|
||||
#include "unicode/uobject.h"
|
||||
|
||||
U_NAMESPACE_BEGIN
|
||||
|
||||
// can't be #ifndef U_HIDE_INTERNAL_API; needed for char[] field size
|
||||
/**
|
||||
* Size of a numbering system name.
|
||||
* @internal
|
||||
*/
|
||||
constexpr const size_t kInternalNumSysNameCapacity = 8;
|
||||
|
||||
/**
|
||||
* Defines numbering systems. A numbering system describes the scheme by which
|
||||
* numbers are to be presented to the end user. In its simplest form, a numbering
|
||||
@ -195,7 +191,7 @@ private:
|
||||
UnicodeString desc;
|
||||
int32_t radix;
|
||||
UBool algorithmic;
|
||||
char name[NUMSYS_NAME_CAPACITY+1];
|
||||
char name[kInternalNumSysNameCapacity+1];
|
||||
|
||||
void setRadix(int32_t radix);
|
||||
|
||||
|
@ -264,7 +264,7 @@ class U_I18N_API FormattedRelativeDateTime : public UMemory, public FormattedVal
|
||||
* Default constructor; makes an empty FormattedRelativeDateTime.
|
||||
* @draft ICU 64
|
||||
*/
|
||||
FormattedRelativeDateTime() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {};
|
||||
FormattedRelativeDateTime() : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
|
||||
|
||||
/**
|
||||
* Move constructor: Leaves the source FormattedRelativeDateTime in an undefined state.
|
||||
@ -708,11 +708,13 @@ private:
|
||||
UErrorCode& status,
|
||||
Args... args) const;
|
||||
|
||||
#ifndef U_HIDE_DRAFT_API // for FormattedRelativeDateTime
|
||||
template<typename F, typename... Args>
|
||||
FormattedRelativeDateTime doFormatToValue(
|
||||
F callback,
|
||||
UErrorCode& status,
|
||||
Args... args) const;
|
||||
#endif // U_HIDE_DRAFT_API
|
||||
|
||||
void formatImpl(
|
||||
double quantity,
|
||||
|
@ -53,11 +53,13 @@ fieldpos.h
|
||||
filteredbrk.h
|
||||
fmtable.h
|
||||
format.h
|
||||
formattedvalue.h
|
||||
fpositer.h
|
||||
gender.h
|
||||
gregocal.h
|
||||
idna.h
|
||||
listformatter.h
|
||||
localebuilder.h
|
||||
locdspnm.h
|
||||
locid.h
|
||||
measfmt.h
|
||||
|
@ -1658,6 +1658,31 @@ void NumberFormatterApiTest::integerWidth() {
|
||||
u"00.08765",
|
||||
u"00.008765",
|
||||
u"00");
|
||||
|
||||
assertFormatSingle(
|
||||
u"Integer Width Remove All A",
|
||||
u"integer-width/00",
|
||||
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2).truncateAt(2)),
|
||||
"en",
|
||||
2500,
|
||||
u"00");
|
||||
|
||||
assertFormatSingle(
|
||||
u"Integer Width Remove All B",
|
||||
u"integer-width/00",
|
||||
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2).truncateAt(2)),
|
||||
"en",
|
||||
25000,
|
||||
u"00");
|
||||
|
||||
assertFormatSingle(
|
||||
u"Integer Width Remove All B, Bytes Mode",
|
||||
u"integer-width/00",
|
||||
NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2).truncateAt(2)),
|
||||
"en",
|
||||
// Note: this double produces all 17 significant digits
|
||||
10000000000000002000.0,
|
||||
u"00");
|
||||
}
|
||||
|
||||
void NumberFormatterApiTest::symbols() {
|
||||
|
@ -9443,6 +9443,32 @@ void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
|
||||
assertEquals(u"Should not overflow",
|
||||
u"3E-2147483648",
|
||||
{sp.data(), sp.length(), US_INV});
|
||||
|
||||
// Test largest parseable exponent
|
||||
result = Formattable();
|
||||
nf->parse(u"9876e2147483643", result, status);
|
||||
sp = result.getDecimalNumber(status);
|
||||
assertEquals(u"Should not overflow",
|
||||
u"9.876E+2147483646",
|
||||
{sp.data(), sp.length(), US_INV});
|
||||
|
||||
// Test max value as well
|
||||
const char16_t* infinityInputs[] = {
|
||||
u"9876e2147483644",
|
||||
u"9876e2147483645",
|
||||
u"9876e2147483646",
|
||||
u"9876e2147483647",
|
||||
u"9876e2147483648",
|
||||
u"9876e2147483649",
|
||||
};
|
||||
for (const auto& input : infinityInputs) {
|
||||
result = Formattable();
|
||||
nf->parse(input, result, status);
|
||||
sp = result.getDecimalNumber(status);
|
||||
assertEquals(UnicodeString("Should become Infinity: ") + input,
|
||||
u"Infinity",
|
||||
{sp.data(), sp.length(), US_INV});
|
||||
}
|
||||
}
|
||||
|
||||
void NumberFormatTest::Test13840_ParseLongStringCrash() {
|
||||
|
@ -63,6 +63,9 @@ std::ostream& operator<<(std::ostream& out, const ResKeyPath& value) {
|
||||
}
|
||||
|
||||
|
||||
PathFilter::~PathFilter() = default;
|
||||
|
||||
|
||||
void SimpleRuleBasedPathFilter::addRule(const std::string& ruleLine, UErrorCode& status) {
|
||||
if (ruleLine.empty()) {
|
||||
std::cerr << "genrb error: empty filter rules are not allowed" << std::endl;
|
||||
|
@ -51,6 +51,8 @@ public:
|
||||
|
||||
static const char* kEInclusionNames[];
|
||||
|
||||
virtual ~PathFilter();
|
||||
|
||||
/**
|
||||
* Returns an EInclusion on whether or not the given path should be included.
|
||||
*
|
||||
|
@ -182,7 +182,7 @@ DateFormatSymbols
|
||||
DateIntervalFormat
|
||||
<ul>
|
||||
<li><span style='color:orange'>(draft)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(Calendar, Calendar)</li>
|
||||
<li><span style='color:orange'>(draft)</span> public final DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(DateInterval)</li>
|
||||
<li><span style='color:orange'>(draft)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(DateInterval)</li>
|
||||
</ul>
|
||||
DecimalFormat
|
||||
<ul>
|
||||
@ -234,8 +234,26 @@ CharsTrie
|
||||
</ul>
|
||||
MeasureUnit
|
||||
<ul>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit BARREL</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit BRITISH_THERMAL_UNIT</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DALTON</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DAY_PERSON</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DUNAM</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit EARTH_MASS</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit ELECTRONVOLT</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit FLUID_OUNCE_IMPERIAL</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit KILOPASCAL</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MEGAPASCAL</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MOLE</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MONTH_PERSON</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit NEWTON</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit NEWTON_METER</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit PERMYRIAD</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit POUND_FOOT</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit POUND_FORCE</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_LUMINOSITY</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_MASS</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_RADIUS</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit WEEK_PERSON</li>
|
||||
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit YEAR_PERSON</li>
|
||||
</ul>
|
||||
@ -246,7 +264,6 @@ VersionInfo
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
<p><i><font size="-1">Contents generated by ReportAPI tool on Fri Feb 22 16:33:29 EST 2019<br/>© 2019 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
|
||||
<p><i><font size="-1">Contents generated by ReportAPI tool on Mon Mar 25 15:50:58 EDT 2019<br/>© 2019 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -141,6 +141,11 @@ public abstract class DecimalQuantity_AbstractBCD implements DecimalQuantity {
|
||||
return;
|
||||
}
|
||||
|
||||
if (maxInt <= scale) {
|
||||
setBcdToZero();
|
||||
return;
|
||||
}
|
||||
|
||||
int magnitude = getMagnitude();
|
||||
if (maxInt <= magnitude) {
|
||||
popFromLeft(magnitude - maxInt + 1);
|
||||
@ -205,6 +210,8 @@ public abstract class DecimalQuantity_AbstractBCD implements DecimalQuantity {
|
||||
if (precision != 0) {
|
||||
scale = Utility.addExact(scale, delta);
|
||||
origDelta = Utility.addExact(origDelta, delta);
|
||||
// Make sure that precision + scale won't overflow, either
|
||||
Utility.addExact(scale, precision);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,6 +156,7 @@ public final class DecimalQuantity_DualStorageBCD extends DecimalQuantity_Abstra
|
||||
|
||||
@Override
|
||||
protected void popFromLeft(int numDigits) {
|
||||
assert numDigits <= precision;
|
||||
if (usingBytes) {
|
||||
int i = precision - 1;
|
||||
for (; i >= precision - numDigits; i--) {
|
||||
@ -252,17 +253,16 @@ public final class DecimalQuantity_DualStorageBCD extends DecimalQuantity_Abstra
|
||||
tempLong = tempLong * 10 + getDigitPos(shift);
|
||||
}
|
||||
BigDecimal result = BigDecimal.valueOf(tempLong);
|
||||
try {
|
||||
// Test that the new scale fits inside the BigDecimal
|
||||
long newScale = result.scale() + scale;
|
||||
if (newScale <= Integer.MIN_VALUE) {
|
||||
result = BigDecimal.ZERO;
|
||||
} else {
|
||||
result = result.scaleByPowerOfTen(scale);
|
||||
} catch (ArithmeticException e) {
|
||||
if (e.getMessage().contains("Underflow")) {
|
||||
result = BigDecimal.ZERO;
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
if (isNegative())
|
||||
if (isNegative()) {
|
||||
result = result.negate();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -6511,6 +6511,32 @@ public class NumberFormatTest extends TestFmwk {
|
||||
result = nf.parse(".0003e-2147483644");
|
||||
assertEquals("Should not overflow",
|
||||
"0", result.toString());
|
||||
|
||||
// Test largest parseable exponent
|
||||
// This is limited by ICU's BigDecimal implementation
|
||||
result = nf.parse("1e999999999");
|
||||
assertEquals("Should not overflow",
|
||||
"1E+999999999", result.toString());
|
||||
|
||||
// Test max value as well
|
||||
String[] infinityInputs = {
|
||||
"9876e1000000000",
|
||||
"9876e2147483640",
|
||||
"9876e2147483641",
|
||||
"9876e2147483642",
|
||||
"9876e2147483643",
|
||||
"9876e2147483644",
|
||||
"9876e2147483645",
|
||||
"9876e2147483646",
|
||||
"9876e2147483647",
|
||||
"9876e2147483648",
|
||||
"9876e2147483649",
|
||||
};
|
||||
for (String input : infinityInputs) {
|
||||
result = nf.parse(input);
|
||||
assertEquals("Should become Infinity: " + input,
|
||||
"Infinity", result.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -1591,6 +1591,31 @@ public class NumberFormatterApiTest {
|
||||
"00.08765",
|
||||
"00.008765",
|
||||
"00");
|
||||
|
||||
assertFormatSingle(
|
||||
"Integer Width Remove All A",
|
||||
"integer-width/00",
|
||||
NumberFormatter.with().integerWidth(IntegerWidth.zeroFillTo(2).truncateAt(2)),
|
||||
ULocale.ENGLISH,
|
||||
2500,
|
||||
"00");
|
||||
|
||||
assertFormatSingle(
|
||||
"Integer Width Remove All B",
|
||||
"integer-width/00",
|
||||
NumberFormatter.with().integerWidth(IntegerWidth.zeroFillTo(2).truncateAt(2)),
|
||||
ULocale.ENGLISH,
|
||||
25000,
|
||||
"00");
|
||||
|
||||
assertFormatSingle(
|
||||
"Integer Width Remove All B, Bytes Mode",
|
||||
"integer-width/00",
|
||||
NumberFormatter.with().integerWidth(IntegerWidth.zeroFillTo(2).truncateAt(2)),
|
||||
ULocale.ENGLISH,
|
||||
// Note: this double produces all 17 significant digits
|
||||
10000000000000002000.0,
|
||||
"00");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
Reference in New Issue
Block a user