23#if U_SHOW_CPLUSPLUS_API
30#if !UCONFIG_NO_FORMATTING
34#ifndef U_HIDE_INTERNAL_API
43#define UPLRULES_NO_UNIQUE_VALUE ((double)-0.00123456777)
51class PluralRuleParser;
52class PluralKeywordEnumeration;
54class SharedPluralRules;
55class StandardPluralRanges;
59class FormattedNumberRange;
61class UFormattedNumberRangeData;
67#ifndef U_HIDE_INTERNAL_API
68using icu::number::impl::DecimalQuantity;
307#ifndef U_HIDE_INTERNAL_API
392#ifndef U_HIDE_INTERNAL_API
415#ifndef U_HIDE_DEPRECATED_API
475#ifndef U_HIDE_INTERNAL_API
521#ifndef U_HIDE_INTERNAL_API
581 friend class PluralRuleParser;
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A Locale object represents a specific geographical, political, or cultural region.
Defines rules for mapping non-negative numeric values onto a small set of keywords.
UnicodeString select(const number::FormattedNumber &number, UErrorCode &status) const
Given a formatted number, returns the keyword of the first rule that applies to the number.
UnicodeString select(const number::FormattedNumberRange &range, UErrorCode &status) const
Given a formatted number range, returns the overall plural form of the range.
static const SharedPluralRules * createSharedInstance(const Locale &locale, UPluralType type, UErrorCode &status)
For ICU use only.
virtual UClassID getDynamicClassID() const override
ICU "poor man's RTTI", returns a UClassID for the actual class.
static PluralRules * createRules(const UnicodeString &description, UErrorCode &status)
Creates a PluralRules from a description if it is parsable, otherwise returns nullptr.
UBool isKeyword(const UnicodeString &keyword) const
Returns true if the given keyword is defined in this PluralRules object.
PluralRules(UErrorCode &status)
Constructor.
static PluralRules * createDefaultRules(UErrorCode &status)
The default rules that accept any number.
PluralRules & operator=(const PluralRules &)
Assignment operator.
PluralRules * clone() const
Clone.
PluralRules(const PluralRules &other)
Copy constructor.
double getUniqueKeywordValue(const UnicodeString &keyword)
Deprecated Function, does not return useful results.
UnicodeString select(const number::impl::UFormattedNumberRangeData *urange, UErrorCode &status) const
static StringEnumeration * getAvailableLocales(UErrorCode &status)
Return a StringEnumeration over the locales for which there is plurals data.
virtual ~PluralRules()
Destructor.
UnicodeString select(double number) const
Given a floating-point number, returns the keyword of the first rule that applies to the number.
UnicodeString getKeywordOther() const
Returns keyword for default plural form.
StringEnumeration * getKeywords(UErrorCode &status) const
Returns a list of all rule keywords used in this PluralRules object.
UnicodeString getRules() const
UnicodeString select(int32_t number) const
Given an integer, returns the keyword of the first rule that applies to the number.
int32_t getSamples(const UnicodeString &keyword, double *dest, int32_t destCapacity, UErrorCode &status)
Returns sample values for which select() would return the keyword.
static PluralRules * internalForLocale(const Locale &locale, UPluralType type, UErrorCode &status)
For ICU use only.
int32_t getSamples(const UnicodeString &keyword, DecimalQuantity *dest, int32_t destCapacity, UErrorCode &status)
Internal-only function that returns DecimalQuantitys instead of doubles.
bool operator!=(const PluralRules &other) const
Compares the inequality of two PluralRules objects.
int32_t getAllKeywordValues(const UnicodeString &keyword, double *dest, int32_t destCapacity, UErrorCode &status)
Deprecated Function, does not produce useful results.
UnicodeString select(const IFixedDecimal &number) const
virtual bool operator==(const PluralRules &other) const
Compares the equality of two PluralRules objects.
static PluralRules * forLocale(const Locale &locale, UErrorCode &status)
Provides access to the predefined cardinal-number PluralRules for a given locale.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
static PluralRules * forLocale(const Locale &locale, UPluralType type, UErrorCode &status)
Provides access to the predefined PluralRules for a given locale and the plural type.
Base class for 'pure' C++ implementations of uenum api.
UObject is the common ICU "boilerplate" class.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
C++ API: Compatibility APIs for number formatting.
int8_t UBool
The ICU boolean type, a signed-byte integer.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
C API: Plural rules, select plural keywords for numeric values.
UPluralType
Type of plurals and PluralRules.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.