4 #ifndef __NUMBERRANGEFORMATTER_H__
5 #define __NUMBERRANGEFORMATTER_H__
9 #if U_SHOW_CPLUSPLUS_API
11 #if !UCONFIG_NO_FORMATTING
56 class UnlocalizedNumberRangeFormatter;
57 class LocalizedNumberRangeFormatter;
58 class FormattedNumberRange;
63 struct RangeMacroProps;
64 class DecimalQuantity;
65 class UFormattedNumberRangeData;
66 class NumberRangeFormatterImpl;
67 struct UFormattedNumberRangeImpl;
76 #if U_PLATFORM == U_PF_WINDOWS && !defined(U_IN_DOXYGEN) && !defined(U_STATIC_IMPLEMENTATION)
80 template struct U_I18N_API std::atomic< U_NAMESPACE_QUALIFIER number::impl::NumberRangeFormatterImpl*>;
101 bool singleFormatter =
true;
130 template<
typename Derived>
368 fMacros.copyErrorTo(outErrorCode);
525 #ifndef U_HIDE_INTERNAL_API
537 void formatImpl(impl::UFormattedNumberRangeData& results,
bool equalBeforeRounding,
549 std::atomic<impl::NumberRangeFormatterImpl*> fAtomicFormatter = {};
551 const impl::NumberRangeFormatterImpl* getFormatter(
UErrorCode& stauts)
const;
630 template<
typename StringClass>
631 inline std::pair<StringClass, StringClass> getDecimalNumbers(
UErrorCode& status)
const;
644 #ifndef U_HIDE_DRAFT_API
685 const impl::UFormattedNumberRangeData *fData;
696 explicit FormattedNumberRange(
UErrorCode errorCode)
697 : fData(nullptr), fErrorCode(errorCode) {}
699 void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih,
UErrorCode& status)
const;
701 void getDecimalNumbers(ByteSink& sink1, ByteSink& sink2,
UErrorCode& status)
const;
703 const impl::UFormattedNumberRangeData* getData(
UErrorCode& status)
const;
706 friend class ::icu::PluralRules;
709 friend class LocalizedNumberRangeFormatter;
712 friend struct impl::UFormattedNumberRangeImpl;
716 template<
typename StringClass>
717 std::pair<StringClass, StringClass> FormattedNumberRange::getDecimalNumbers(
UErrorCode& status)
const {
722 getDecimalNumbers(sink1, sink2, status);
723 return std::make_pair(str1, str2);
766 #endif // __NUMBERRANGEFORMATTER_H__
#define U_OVERRIDE
Defined to the C++11 "override" keyword if available.
#define U_FAILURE(x)
Does the error code indicate a failure?
C++ API: FieldPosition Iterator.
"Smart pointer" class, deletes objects via the standard C++ delete operator.
C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (char16_ts).
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
C++ API: FieldPosition identifies the fields in a formatted output.
Represents a span of a string containing a given field.
bool copyErrorTo(UErrorCode &status) const
Check all members for errors.
UnlocalizedNumberFormatter formatter2
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
UnlocalizedNumberFormatter formatter1
Basic definitions for ICU, for both C and C++ APIs.
Implementation of ByteSink that writes to a "string".
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
UMemory is the common ICU base class.
Requested operation can not be completed with ICU in its current state.
int8_t UBool
The ICU boolean type, a signed-byte integer.
Base class for objects to which Unicode characters and strings can be appended.
A Locale object represents a specific geographical, political, or cultural region.