Data Structures
Here are the data structures with brief descriptions:

icu | File coll.h
message2 |
data_model |
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
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
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
Option | An `Option` pairs an option name with an Operand
PatternPart | A `PatternPart` is a single element (text or expression) in a `Pattern`
Formattable | The `Formattable` class represents a typed value that can be formatted, originating either from a message argument or a literal in the code
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
FormattedMessage | Not yet implemented: The result of a message formatting operation
FormattedPlaceholder | A `FormattablePlaceholder` encapsulates an input value (a `message2::Formattable`) together with an optional output value (a `message2::FormattedValue`)
FormattedValue | A `FormattedValue` represents the result of formatting a `message2::Formattable`
Formatter | Interface that formatter classes must implement
FormatterFactory | Interface that factory classes for creating formatters must implement
FunctionOptions | Structure encapsulating named options passed to a custom selector or formatter
MessageArguments | The `MessageArguments` class represents the named arguments to a message
MessageFormatter |
Builder | The mutable Builder class allows each part of the MessageFormatter to be initialized separately; calling its `build()` method yields an immutable MessageFormatter
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
Selector | Interface that selector classes must implement
SelectorFactory | Interface that factory classes for creating selectors must implement
number |
impl |
RangeMacroProps |
CurrencyPrecision | A class that defines a rounding precision parameterized by a currency to be used when formatting numbers in NumberFormatter
FormattedNumber | The result of a number formatting operation
FormattedNumberRange | The result of a number range formatting operation
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
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
LocalizedNumberFormatter | A NumberFormatter that has a locale associated with it; this means .format() methods are available
LocalizedNumberRangeFormatter | A NumberRangeFormatter that has a locale associated with it; this means .formatRange() methods are available
Notation | A class that defines the notation style to be used when formatting numbers in NumberFormatter
NumberFormatter | See the main description in numberformatter.h for documentation and examples
NumberFormatterSettings | An abstract base class for specifying settings related to number formatting
NumberRangeFormatter | See the main description in numberrangeformatter.h for documentation and examples
NumberRangeFormatterSettings | An abstract base class for specifying settings related to number formatting
Precision | A class that defines the rounding precision to be used when formatting numbers in NumberFormatter
Scale | A class that defines a quantity by which a number should be multiplied when formatting
ScientificNotation | A class that defines the scientific notation style to be used when formatting numbers in NumberFormatter
SimpleNumber | An input type for SimpleNumberFormatter
SimpleNumberFormatter | A special NumberFormatter focused on smaller binary size and memory use
UnlocalizedNumberFormatter | A NumberFormatter that does not yet have a locale
UnlocalizedNumberRangeFormatter | A NumberRangeFormatter that does not yet have a locale
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
AnnualTimeZoneRule | `AnnualTimeZoneRule` is a class used for representing a time zone rule which takes effect annually
Appendable | Base class for objects to which Unicode characters and strings can be appended
BasicTimeZone | `BasicTimeZone` is an abstract class extending `TimeZone`
BreakIterator | Implements methods for finding the location of boundaries in text
ByteSink | A ByteSink can be filled with bytes
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
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
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
CharacterIterator | Abstract class that defines an API for iteration on text objects
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
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
CollationKey | Collation keys are generated by the Collator class
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
ConstChar16Ptr | Const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types
ConstrainedFieldPosition | Represents a span of a string containing a given field
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
DateFormatSymbols | DateFormatSymbols is a public class for encapsulating localizable date-time formatting data – including timezone data
DateInterval | This class represents a date interval
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
DecimalFormat | IMPORTANT: New users are strongly encouraged to see if numberformatter.h fits their use case
DecimalFormatSymbols | This class represents the set of symbols needed by DecimalFormat to format numbers
DisplayOptions | Represents all the display options that are supported by CLDR such as grammatical case, noun class, ... etc
Builder | Responsible for building `DisplayOptions`
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
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
FieldPosition | `FieldPosition` is a simple class used by `Format` and its subclasses to identify fields in formatted output
FieldPositionIterator | FieldPositionIterator returns the field ids and their start/limit positions generated by a call to Format::format
FilteredBreakIteratorBuilder | The BreakIteratorFilter is used to modify the behavior of a BreakIterator by constructing a new BreakIterator which suppresses certain segment boundaries
FilteredNormalizer2 | Normalization filtered by a UnicodeSet
FontRuns | The `FontRuns` class associates pointers to `LEFontInstance` objects with runs of text
Format | Base class for all formats
Formattable | Formattable objects can be passed to the Format class or its subclasses for formatting
FormattedDateInterval | An immutable class containing the result of a date interval formatting operation
FormattedList | An immutable class containing the result of a list formatting operation
FormattedRelativeDateTime | An immutable class containing the result of a relative datetime formatting operation
FormattedValue | An abstract formatted value: a string with associated field attributes
ForwardCharacterIterator | Abstract class that defines an API for forward-only iteration on text objects
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
IDNA | Abstract base class for IDNA processing
IDNAInfo | Output container for IDNA processing errors
InitialTimeZoneRule | `InitialTimeZoneRule` represents a time zone rule representing a time zone effective from the beginning and has no actual start times
ListFormatter | An immutable class for formatting a list, using data from CLDR (or supplied separately)
LocalArray | "Smart pointer" class, deletes objects via the C++ array delete[] operator
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
LocaleBuilder | `LocaleBuilder` is used to build instances of `Locale` from values configured by the setters
LocaleDisplayNames | Returns display names of Locales and components of Locales
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
LocaleRuns | The `LocaleRuns` class associates pointers to `Locale` objects with runs of text
LocalPointer | "Smart pointer" class, deletes objects via the standard C++ delete operator
LocalPointerBase | "Smart pointer" base class; do not use directly: use LocalPointer etc
Measure | An amount of a specified unit, consisting of a number and a Unit
MeasureFormat |
MeasureUnit | A unit such as length, mass, volume, currency, etc
MessageFormat |
MessagePattern | Parses and represents ICU MessageFormat patterns
Part | A message pattern "part", representing a pattern parsing event
Normalizer | Old Unicode normalization API
Normalizer2 | Unicode normalization functionality for standard Unicode normalization or for using custom mapping tables
NumberFormat |
NumberFormatFactory | A NumberFormatFactory is used to register new number formats
NumberingSystem | Defines numbering systems
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
ParsePosition | `ParsePosition` is a simple class used by `Format` and its subclasses to keep track of the current position during parsing
PluralFormat |
PluralRules | Defines rules for mapping non-negative numeric values onto a small set of keywords
RegexMatcher | Class RegexMatcher bundles together a regular expression pattern and input text to which the expression can be applied
RegexPattern | Class `RegexPattern` represents a compiled regular expression
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
RelativeDateTimeFormatter | Formats simple relative dates
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
RuleBasedBreakIterator | A subclass of BreakIterator whose behavior is specified using a list of rules
RuleBasedCollator | Implementation of Collator, using data-driven tables
RuleBasedNumberFormat | Formats numbers according to a set of rules
RuleBasedTimeZone | BasicTimeZone subclass implemented in terms of InitialTimeZoneRule and TimeZoneRule instances
RunArray | The `RunArray` class is a base class for building classes which represent data that is associated with runs of text
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 |
SimpleDateFormat | SimpleDateFormat is a concrete class for formatting and parsing dates in a language-independent manner
SimpleFormatter | Formats simple patterns like "{1} was born in {0}"
SimpleNumberFormatFactory | A NumberFormatFactory that supports a single locale
SimpleTimeZone | `SimpleTimeZone` is a concrete subclass of `TimeZone` that represents a time zone for use with a Gregorian calendar
StringByteSink | Implementation of ByteSink that writes to a "string"
StringCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UnicodeString
StringEnumeration | Base class for 'pure' C++ implementations of uenum api
StringPiece | A string-like object that points to a sized piece of memory
StringSearch | `StringSearch` is a `SearchIterator` that provides language-sensitive text searching based on the comparison rules defined in a `RuleBasedCollator` object
SymbolTable | An interface that defines both lookup protocol and parsing of symbolic names
TimeArrayTimeZoneRule | `TimeArrayTimeZoneRule` represents a time zone rule whose start times are defined by an array of milliseconds since the standard base time
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
TimeZone | `TimeZone` represents a time zone offset, and also figures out daylight savings
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
TimeZoneTransition | `TimeZoneTransition` is a class representing a time zone transition
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
UCharCharacterIterator | A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a char16_t array
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
UMemory | UMemory is the common ICU base class
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
UnicodeReplacer | `UnicodeReplacer` defines a protocol for objects that replace a range of characters in a Replaceable string with output text
UnicodeSet | A mutable set of Unicode characters and multicharacter strings
UnicodeSetIterator | UnicodeSetIterator iterates over the contents of a UnicodeSet
UnicodeString | UnicodeString is a string class that stores Unicode characters directly and provides similar functionality as the Java String and StringBuffer/StringBuilder classes
UnicodeStringAppendable | An Appendable implementation which writes to a UnicodeString
UObject | UObject is the common ICU "boilerplate" class
ValueRuns | The `ValueRuns` class associates integer values with runs of text
VTimeZone | `VTimeZone` is a class implementing RFC2445 VTIMEZONE
U_HEADER_ONLY_NAMESPACE |
collator |
internal |
Predicate | Function object for performing comparisons using a UCollator
CodePointRange | A contiguous range of code points in a USet/UnicodeSet
iterator |
USetCodePointIterator | Iterator returned by USetCodePoints
USetCodePoints | C++ "range" for iterating over the code points of a USet
USetElementIterator | Iterator returned by USetElements
USetElements | A C++ "range" for iterating over all of the elements of a USet
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
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