Data Structures
Here are the data structures with brief descriptions:

icu | File coll.h
message2 |
data_model |
Literal | The `Literal` class corresponds to the `literal` nonterminal in the MessageFormat 2 grammar, https://github.com/unicode-org/message-format-wg/blob/main/spec/message.abnf and the `Literal` interface defined in // https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model.md#expressions
Operand | The `Operand` class corresponds to the `operand` nonterminal in the MessageFormat 2 grammar, https://github.com/unicode-org/message-format-wg/blob/main/spec/message.abnf
Key | The `Key` class corresponds to the `key` nonterminal in the MessageFormat 2 grammar, https://github.com/unicode-org/message-format-wg/blob/main/spec/message.abnf
SelectorKeys | The `SelectorKeys` class represents the key list for a single variant
Builder | The mutable `SelectorKeys::Builder` class allows the key list to be constructed one key at a time
Option | An `Option` pairs an option name with an Operand
Operator | The `Operator` class corresponds to the `FunctionRef` type in the `Expression` interface defined in https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model.md#patterns
Builder | The mutable `Operator::Builder` class allows the operator to be constructed incrementally
Markup | The `Markup` class corresponds to the `markup` nonterminal in the MessageFormat 2 grammar and the `markup` interface defined in https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model/message.json
Builder | The mutable `Markup::Builder` class allows the markup to be constructed incrementally
Expression | The `Expression` class corresponds to the `expression` nonterminal in the MessageFormat 2 grammar and the `Expression` interface defined in https://github.com/unicode-org/message-format-wg/blob/main/spec/data-model.md#patterns
Builder | The mutable `Expression::Builder` class allows the operator to be constructed incrementally
PatternPart | A `PatternPart` is a single element (text or expression) in a `Pattern`
Pattern | A `Pattern` is a sequence of formattable parts
Builder | The mutable `Pattern::Builder` class allows the pattern to be constructed one part at a time
Iterator | The `Pattern::Iterator` class provides an iterator over the formattable parts of a pattern
Variant | A `Variant` pairs a list of keys with a pattern It corresponds to the `Variant` interface defined in https://github.com/unicode-org/message-format-wg/tree/main/spec/data-model
Binding | A `Binding` pairs a variable name with an expression
MessageFormatter |
Builder | The mutable Builder class allows each part of the MessageFormatter to be initialized separately; calling its `build()` method yields an immutable MessageFormatter
MessageArguments | The `MessageArguments` class represents the named arguments to a message
MFDataModel | The `MFDataModel` class describes a parsed representation of the text of a message
Builder | The mutable `MFDataModel::Builder` class allows the data model to be constructed incrementally
FormattableObject | `FormattableObject` is an abstract class that can be implemented in order to define an arbitrary class that can be passed to a custom formatter or selector function
Formattable | The `Formattable` class represents a typed value that can be formatted, originating either from a message argument or a literal in the code
FunctionOptions | Structure encapsulating named options passed to a custom selector or formatter
FormattedValue | A `FormattedValue` represents the result of formatting a `message2::Formattable`
FormattedPlaceholder | A `FormattablePlaceholder` encapsulates an input value (a `message2::Formattable`) together with an optional output value (a `message2::FormattedValue`)
FormattedMessage | Not yet implemented: The result of a message formatting operation
FormatterFactory | Interface that factory classes for creating formatters must implement
SelectorFactory | Interface that factory classes for creating selectors must implement
MFFunctionRegistry | Defines mappings from names of formatters and selectors to functions implementing them
Builder | The mutable Builder class allows each formatter and selector factory to be initialized separately; calling its `build()` method yields an immutable MFFunctionRegistry object
Formatter | Interface that formatter classes must implement
Selector | Interface that selector classes must implement
number |
impl |
StringProp | Manages NumberFormatterSettings::usage()'s char* instance on the heap
SymbolsWrapper |
Grouper |
Padder |
MacroProps |
RangeMacroProps |
FormattedNumber | The result of a number formatting operation
Notation | A class that defines the notation style to be used when formatting numbers in NumberFormatter
ScientificNotation | A class that defines the scientific notation style to be used when formatting numbers in NumberFormatter
Precision | A class that defines the rounding precision to be used when formatting numbers in NumberFormatter
FractionPrecision | A class that defines a rounding precision based on a number of fraction places and optionally significant digits to be used when formatting numbers in NumberFormatter
CurrencyPrecision | A class that defines a rounding precision parameterized by a currency to be used when formatting numbers in NumberFormatter
IncrementPrecision | A class that defines a rounding precision parameterized by a rounding increment to be used when formatting numbers in NumberFormatter
IntegerWidth | A class that defines the strategy for padding and truncating integers before the decimal separator
Scale | A class that defines a quantity by which a number should be multiplied when formatting
NumberFormatterSettings | An abstract base class for specifying settings related to number formatting
UnlocalizedNumberFormatter | A NumberFormatter that does not yet have a locale
LocalizedNumberFormatter | A NumberFormatter that has a locale associated with it; this means .format() methods are available
NumberFormatter | See the main description in numberformatter.h for documentation and examples
NumberRangeFormatterSettings | An abstract base class for specifying settings related to number formatting
UnlocalizedNumberRangeFormatter | A NumberRangeFormatter that does not yet have a locale
LocalizedNumberRangeFormatter | A NumberRangeFormatter that has a locale associated with it; this means .formatRange() methods are available
FormattedNumberRange | The result of a number range formatting operation
NumberRangeFormatter | See the main description in numberrangeformatter.h for documentation and examples
SimpleNumber | An input type for SimpleNumberFormatter
SimpleNumberFormatter | A special NumberFormatter focused on smaller binary size and memory use
Appendable | Base class for objects to which Unicode characters and strings can be appended
UnicodeStringAppendable | An Appendable implementation which writes to a UnicodeString
BreakIterator | Implements methods for finding the location of boundaries in text
ByteSink | A ByteSink can be filled with bytes
CheckedArrayByteSink | Implementation of ByteSink that writes to a flat byte array, with bounds-checking: This sink will not write more than capacity bytes to outbuf
StringByteSink | Implementation of ByteSink that writes to a "string"
BytesTrie | Light-weight, non-const reader class for a BytesTrie
Iterator | Iterator for all of the (byte sequence, value) pairs in a BytesTrie
State | BytesTrie state object, for saving a trie's current state and resetting the trie back to this state later
BytesTrieBuilder | Builder class for BytesTrie
CanonicalIterator | This class allows one to iterate through all the strings that are canonically equivalent to a given string
CaseMap | Low-level C++ case mapping functions
Char16Ptr | Char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types
ConstChar16Ptr | Const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types
ForwardCharacterIterator | Abstract class that defines an API for forward-only iteration on text objects
CharacterIterator | Abstract class that defines an API for iteration on text objects
DateInterval | This class represents a date interval
Edits | Records lengths of string edits but not replacement text
Iterator | Access to the list of edits
ErrorCode | Wrapper class for UErrorCode, with conversion operators for direct use in ICU C and C++ APIs
FilteredBreakIteratorBuilder | The BreakIteratorFilter is used to modify the behavior of a BreakIterator by constructing a new BreakIterator which suppresses certain segment boundaries
IDNA | Abstract base class for IDNA processing
IDNAInfo | Output container for IDNA processing errors
LocaleBuilder | `LocaleBuilder` is used to build instances of `Locale` from values configured by the setters
LocaleMatcher | Immutable class that picks the best match between a user's desired locales and an application's supported locales
Builder | LocaleMatcher builder
Result | Data for the best-matching pair of a desired and a supported locale
LocalPointerBase | "Smart pointer" base class; do not use directly: use LocalPointer etc
LocalPointer | "Smart pointer" class, deletes objects via the standard C++ delete operator
LocalArray | "Smart pointer" class, deletes objects via the C++ array delete[] operator
LocaleDisplayNames | Returns display names of Locales and components of Locales
Locale | A `Locale` object represents a specific geographical, political, or cultural region
ConvertingIterator | A generic Locale iterator implementation over Locale input iterators
Iterator | A Locale iterator interface similar to a Java Iterator<Locale>
RangeIterator | A generic Locale iterator implementation over Locale input iterators
MessagePattern | Parses and represents ICU MessageFormat patterns
Part | A message pattern "part", representing a pattern parsing event
Normalizer2 | Unicode normalization functionality for standard Unicode normalization or for using custom mapping tables
FilteredNormalizer2 | Normalization filtered by a UnicodeSet
Normalizer | Old Unicode normalization API
ParsePosition | `ParsePosition` is a simple class used by `Format` and its subclasses to keep track of the current position during parsing
ExternalBreakEngine | Define an abstract interface for the host environment to provide a low level facility to break text for unicode text in script that the text boundary cannot be handled by upper level rule based logic, for example, for Chinese and Japanese word breaking, Thai, Khmer, Burmese, Lao and other Southeast Asian scripts
RuleBasedBreakIterator | A subclass of BreakIterator whose behavior is specified using a list of rules
Replaceable | `Replaceable` is an abstract base class representing a string of characters that supports the replacement of a range of itself with a new string of characters
ResourceBundle | A class representing a collection of resource information pertaining to a given locale
StringCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UnicodeString
SimpleFormatter | Formats simple patterns like "{1} was born in {0}"
StringEnumeration | Base class for 'pure' C++ implementations of uenum api
StringPiece | A string-like object that points to a sized piece of memory
SymbolTable | An interface that defines both lookup protocol and parsing of symbolic names
UCharsTrie | Light-weight, non-const reader class for a UCharsTrie
Iterator | Iterator for all of the (string, value) pairs in a UCharsTrie
State | UCharsTrie state object, for saving a trie's current state and resetting the trie back to this state later
UCharsTrieBuilder | Builder class for UCharsTrie
UCharCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a char16_t array
UnicodeFilter | `UnicodeFilter` defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Unicode characters
UnicodeFunctor | `UnicodeFunctor` is an abstract base class for objects that perform match and/or replace operations on Unicode strings
UnicodeMatcher | `UnicodeMatcher` defines a protocol for objects that can match a range of characters in a Replaceable string
UnicodeSet | A mutable set of Unicode characters and multicharacter strings
UnicodeString | UnicodeString is a string class that stores Unicode characters directly and provides similar functionality as the Java String and StringBuffer/StringBuilder classes
UMemory | UMemory is the common ICU base class
UObject | UObject is the common ICU "boilerplate" class
UnicodeSetIterator | UnicodeSetIterator iterates over the contents of a UnicodeSet
AlphabeticIndex | AlphabeticIndex supports the creation of a UI index appropriate for a given language
Bucket | An index "bucket" with a label string and type
ImmutableIndex | Immutable, thread-safe version of AlphabeticIndex
BasicTimeZone | `BasicTimeZone` is an abstract class extending `TimeZone`
Calendar | `Calendar` is an abstract base class for converting between a `UDate` object and a set of integer fields such as `YEAR`, `MONTH`, `DAY`, `HOUR`, and so on
ChoiceFormat | ChoiceFormat converts between ranges of numeric values and strings for those ranges
CollationElementIterator | Used as an iterator to walk through each character of an international string
Collator | The `Collator` class performs locale-sensitive string comparison
CollatorFactory | A factory, used with registerFactory, the creates multiple collators and provides display names for them
CompactDecimalFormat | IMPORTANT: New users are strongly encouraged to see if numberformatter.h fits their use case
CurrencyAmount | A currency together with a numeric amount, such as 200 USD
CurrencyPluralInfo | This class represents the information needed by DecimalFormat to format currency plural, such as "3.00 US dollars" or "1.00 US dollar"
CurrencyUnit | A unit of currency, such as USD (U.S
DateFormat | DateFormat is an abstract class for a family of classes that convert dates and times from their internal representations to textual form and back again in a language-independent manner
DecimalFormatSymbols | This class represents the set of symbols needed by DecimalFormat to format numbers
DecimalFormat | IMPORTANT: New users are strongly encouraged to see if numberformatter.h fits their use case
DisplayOptions | Represents all the display options that are supported by CLDR such as grammatical case, noun class, ..
Builder | Responsible for building `DisplayOptions`
DateFormatSymbols | DateFormatSymbols is a public class for encapsulating localizable date-time formatting data – including timezone data
FormattedDateInterval | An immutable class containing the result of a date interval formatting operation
DateIntervalFormat | DateIntervalFormat is a class for formatting and parsing date intervals in a language-independent manner
DateIntervalInfo | DateIntervalInfo is a public class for encapsulating localizable date time interval patterns
DateTimePatternGenerator | This class provides flexible generation of date format patterns, like "yy-MM-dd"
DateTimeRule | `DateTimeRule` is a class representing a time in a year by a rule specified by month, day of month, day of week and time in the day
FieldPosition | `FieldPosition` is a simple class used by `Format` and its subclasses to identify fields in formatted output
Formattable | Formattable objects can be passed to the Format class or its subclasses for formatting
Format | Base class for all formats
ConstrainedFieldPosition | Represents a span of a string containing a given field
FormattedValue | An abstract formatted value: a string with associated field attributes
FieldPositionIterator | FieldPositionIterator returns the field ids and their start/limit positions generated by a call to Format::format
GenderInfo | GenderInfo computes the gender of a list as a whole given the gender of each element
GregorianCalendar | Concrete class which provides the standard calendar used by most of the world
FormattedList | An immutable class containing the result of a list formatting operation
ListFormatter | An immutable class for formatting a list, using data from CLDR (or supplied separately)
MeasureFormat |
MeasureUnit | A unit such as length, mass, volume, currency, etc
Measure | An amount of a specified unit, consisting of a number and a Unit
MessageFormat |
NumberFormat |
NumberFormatFactory | A NumberFormatFactory is used to register new number formats
SimpleNumberFormatFactory | A NumberFormatFactory that supports a single locale
NumberingSystem | Defines numbering systems
PluralFormat |
PluralRules | Defines rules for mapping non-negative numeric values onto a small set of keywords
RuleBasedNumberFormat | Formats numbers according to a set of rules
RuleBasedTimeZone | BasicTimeZone subclass implemented in terms of InitialTimeZoneRule and TimeZoneRule instances
RegexPattern | Class `RegexPattern` represents a compiled regular expression
RegexMatcher | Class RegexMatcher bundles together a regular expression pattern and input text to which the expression can be applied
Region | `Region` is the class representing a Unicode Region Code, also known as a Unicode Region Subtag, which is defined based upon the BCP 47 standard
FormattedRelativeDateTime | An immutable class containing the result of a relative datetime formatting operation
RelativeDateTimeFormatter | Formats simple relative dates
ScientificNumberFormatter | A formatter that formats numbers in user-friendly scientific notation
SearchIterator | `SearchIterator` is an abstract base class that provides methods to search for a pattern within a text string
SelectFormat |
SimpleTimeZone | `SimpleTimeZone` is a concrete subclass of `TimeZone` that represents a time zone for use with a Gregorian calendar
SimpleDateFormat | SimpleDateFormat is a concrete class for formatting and parsing dates in a language-independent manner
CollationKey | Collation keys are generated by the Collator class
StringSearch | `StringSearch` is a `SearchIterator` that provides language-sensitive text searching based on the comparison rules defined in a RuleBasedCollator object
RuleBasedCollator | Implementation of Collator, using data-driven tables
TimeZone | `TimeZone` represents a time zone offset, and also figures out daylight savings
TimeUnit | Measurement unit for time units
TimeUnitAmount | Express a duration as a time unit and number
TimeUnitFormat | Format or parse a TimeUnitAmount, using plural rules for the units where available
Transliterator | `Transliterator` is an abstract class that transliterates text from one format to another
Token | A context integer or pointer for a factory function, passed by value
TimeZoneFormat | `TimeZoneFormat` supports time zone display name formatting and parsing
TimeZoneNames | `TimeZoneNames` is an abstract class representing the time zone display name data model defined by UTS#35 Unicode Locale Data Markup Language (LDML)
MatchInfoCollection | `MatchInfoCollection` represents a collection of time zone name matches used by TimeZoneNames#find
TimeZoneRule | `TimeZoneRule` is a class representing a rule for time zone
InitialTimeZoneRule | `InitialTimeZoneRule` represents a time zone rule representing a time zone effective from the beginning and has no actual start times
AnnualTimeZoneRule | `AnnualTimeZoneRule` is a class used for representing a time zone rule which takes effect annually
TimeArrayTimeZoneRule | `TimeArrayTimeZoneRule` represents a time zone rule whose start times are defined by an array of milliseconds since the standard base time
TimeZoneTransition | `TimeZoneTransition` is a class representing a time zone transition
UnicodeReplacer | `UnicodeReplacer` defines a protocol for objects that replace a range of characters in a Replaceable string with output text
VTimeZone | `VTimeZone` is a class implementing RFC2445 VTIMEZONE
ParagraphLayout | ParagraphLayout
Line | This class represents a single line of text in a `ParagraphLayout`
VisualRun | This object represents a single visual run in a line of text in a paragraph
RunArray | The `RunArray` class is a base class for building classes which represent data that is associated with runs of text
FontRuns | The `FontRuns` class associates pointers to `LEFontInstance` objects with runs of text
LocaleRuns | The `LocaleRuns` class associates pointers to `Locale` objects with runs of text
ValueRuns | The `ValueRuns` class associates integer values with runs of text
U_HEADER_ONLY_NAMESPACE |
collator |
internal |
Predicate | Function object for performing comparisons using a UCollator
USetCodePointIterator | Iterator returned by USetCodePoints
USetCodePoints | C++ "range" for iterating over the code points of a USet
CodePointRange | A contiguous range of code points in a USet/UnicodeSet
iterator |
USetRangeIterator | Iterator returned by USetRanges
USetRanges | C++ "range" for iterating over the code point ranges of a USet
USetStringIterator | Iterator returned by USetStrings
USetStrings | C++ "range" for iterating over the empty and multi-character strings of a USet
USetElementIterator | Iterator returned by USetElements
USetElements | A C++ "range" for iterating over all of the elements of a USet
LocalUBiDiPointer | "Smart pointer" class, closes a UBiDi via ubidi_close()
LocalUBiDiTransformPointer | "Smart pointer" class, closes a UBiDiTransform via ubiditransform_close()
LocalUBreakIteratorPointer | "Smart pointer" class, closes a UBreakIterator via ubrk_close()
LocalUCalendarPointer | "Smart pointer" class, closes a UCalendar via ucal_close()
LocalUCaseMapPointer | "Smart pointer" class, closes a UCaseMap via ucasemap_close()
LocalUCharsetDetectorPointer | "Smart pointer" class, closes a UCharsetDetector via ucsdet_close()
LocalUCollatorPointer | "Smart pointer" class, closes a UCollator via ucol_close()
LocalUConstrainedFieldPositionPointer | "Smart pointer" class; closes a UConstrainedFieldPosition via ucfpos_close()
LocalUConverterPointer | "Smart pointer" class, closes a UConverter via ucnv_close()
LocalUConverterSelectorPointer | "Smart pointer" class, closes a UConverterSelector via ucnvsel_close()
LocalUCPTriePointer | "Smart pointer" class, closes a UCPTrie via ucptrie_close()
LocalUDataMemoryPointer | "Smart pointer" class, closes a UDataMemory via udata_close()
LocalUDateFormatPointer | "Smart pointer" class, closes a UDateFormat via udat_close()
LocalUDateIntervalFormatPointer | "Smart pointer" class, closes a UDateIntervalFormat via udtitvfmt_close()
LocalUDateTimePatternGeneratorPointer | "Smart pointer" class, closes a UDateTimePatternGenerator via udatpg_close()
LocalUEnumerationPointer | "Smart pointer" class, closes a UEnumeration via uenum_close()
LocalUFieldPositionIteratorPointer | "Smart pointer" class, closes a UFieldPositionIterator via ufieldpositer_close()
LocalUFILEPointer | "Smart pointer" class, closes a UFILE via u_fclose()
LocalUFormattablePointer | "Smart pointer" class, closes a UFormattable via ufmt_close()
LocalUFormattedDateIntervalPointer | "Smart pointer" class, closes a UFormattedDateInterval via udtitvfmt_close()
LocalUFormattedListPointer | "Smart pointer" class, closes a UFormattedList via ulistfmt_closeResult()
LocalUFormattedNumberPointer | "Smart pointer" class; closes a UFormattedNumber via unumf_closeResult()
LocalUFormattedRelativeDateTimePointer | "Smart pointer" class, closes a UFormattedRelativeDateTime via ureldatefmt_closeResult()
LocalUIDNAPointer | "Smart pointer" class, closes a UIDNA via uidna_close()
LocalUListFormatterPointer | "Smart pointer" class, closes a UListFormatter via ulistfmt_close()
LocalULocaleBuilderPointer | "Smart pointer" class, closes a ULocaleBuilder via ulocbld_close()
LocalULocaleDataPointer | "Smart pointer" class, closes a ULocaleData via ulocdata_close()
LocalULocaleDisplayNamesPointer | "Smart pointer" class, closes a ULocaleDisplayNames via uldn_close()
LocalULocalePointer | "Smart pointer" class, closes a ULocale via ulocale_close()
LocalUMessageFormatPointer | "Smart pointer" class, closes a UMessageFormat via umsg_close()
LocalUMutableCPTriePointer | "Smart pointer" class, closes a UMutableCPTrie via umutablecptrie_close()
LocalUNormalizer2Pointer | "Smart pointer" class, closes a UNormalizer2 via unorm2_close()
LocalUNumberFormatPointer | "Smart pointer" class, closes a UNumberFormat via unum_close()
LocalUNumberFormatterPointer | "Smart pointer" class; closes a UNumberFormatter via unumf_close()
LocalUNumberingSystemPointer | "Smart pointer" class, closes a UNumberingSystem via unumsys_close()
LocalUNumberRangeFormatterPointer | "Smart pointer" class; closes a UNumberFormatter via unumf_close()
LocalUPluralRulesPointer | "Smart pointer" class, closes a UPluralRules via uplrules_close()
LocalURegularExpressionPointer | "Smart pointer" class, closes a URegularExpression via uregex_close()
LocalURelativeDateTimeFormatterPointer | "Smart pointer" class, closes a URelativeDateTimeFormatter via ureldatefmt_close()
LocalUResourceBundlePointer | "Smart pointer" class, closes a UResourceBundle via ures_close()
LocalUSetPointer | "Smart pointer" class, closes a USet via uset_close()
LocalUSimpleNumberFormatterPointer | "Smart pointer" class; closes a USimpleNumberFormatter via usnumf_close()
LocalUSimpleNumberPointer | "Smart pointer" class; closes a USimpleNumber via usnum_close()
LocalUSpoofCheckerPointer | "Smart pointer" class, closes a USpoofChecker via uspoof_close()
LocalUSpoofCheckResultPointer | "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`
LocalUStringPrepProfilePointer | "Smart pointer" class, closes a UStringPrepProfile via usprep_close()
LocalUStringSearchPointer | "Smart pointer" class, closes a UStringSearch via usearch_close()
LocalUTextPointer | "Smart pointer" class, closes a UText via utext_close()
LocalUTransliteratorPointer | "Smart pointer" class, closes a UTransliterator via utrans_close()
UCharIterator | C API for code unit iteration
UConverterFromUnicodeArgs | The structure for the fromUnicode callback function parameter
UConverterToUnicodeArgs | The structure for the toUnicode callback function parameter
UCPTrie | Immutable Unicode code point trie structure
UDataInfo | UDataInfo contains the properties about the requested data
UFieldPosition | A struct representing a range of text containing a specific field
UIDNAInfo | Output container for IDNA processing errors
UParseError | A UParseError struct is used to returned detailed information about parsing errors
UReplaceableCallbacks | A set of function pointers that transliterators use to manipulate a UReplaceable
USerializedSet | A serialized form of a Unicode set
UText | UText struct
UTextFuncs | (public) Function dispatch table for UText
UTransPosition | Position structure for utrans_transIncremental() incremental transliteration