# ICU4C API Comparison: 56 with 57

## Removed from 56

File | API | 56 | 57
--- | --- | --- | ---
listformatter.h | icu::ListFormatter::ListFormatter(const ListFormatData&) | Internal | (missing)

(jump back to top)

## Deprecated or Obsoleted in 57

File | API | 56 | 57
--- | --- | --- | ---

(jump back to top)

## Changed in 57 (old, new)

File | API | 56 | 57
--- | --- | --- | ---
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(Calendar*, const UnicodeString&, const Locale&, UErrorCode&) | Draft→Stable 55
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(const UnicodeString&, UErrorCode&) | Draft→Stable 55
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(const UnicodeString&, const Locale&, UErrorCode&) | Draft→Stable 55
dtfmtsym.h | UnicodeString& icu::DateFormatSymbols::getTimeSeparatorString(UnicodeString&) | Draft 55 | Internal
dtfmtsym.h | void icu::DateFormatSymbols::setTimeSeparatorString(const UnicodeString&) | Draft 55 | Internal
localpointer.h | icu::LocalPointer< T >::LocalPointer(T*, UErrorCode&) | Draft→Stable 55
localpointer.h | void icu::LocalPointer< T >::adoptInsteadAndCheckErrorCode(T*, UErrorCode&) | Draft→Stable 55
measfmt.h | UnicodeString& icu::MeasureFormat::formatMeasurePerUnit(const Measure&, const MeasureUnit&, UnicodeString&, FieldPosition&, UErrorCode&) | Draft→Stable 55
regex.h | UBool icu::RegexMatcher::find(UErrorCode&) | Draft→Stable 55
regex.h | int32_t icu::RegexPattern::groupNumberFromName(const UnicodeString&, UErrorCode&) | Draft→Stable 55
regex.h | int32_t icu::RegexPattern::groupNumberFromName(const char*, int32_t, UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getContainedRegions(UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getContainedRegions(URegionType, UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getPreferredValues(UErrorCode&) | Draft→Stable 55
region.h | `static` StringEnumeration* icu::Region::getAvailable(URegionType, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | ScientificNumberFormatter* icu::ScientificNumberFormatter::clone() | Draft→Stable 55
scientificnumberformatter.h | UnicodeString& icu::ScientificNumberFormatter::format(const Formattable&, UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | icu::ScientificNumberFormatter::~ScientificNumberFormatter() | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createMarkupInstance(DecimalFormat*, const UnicodeString&, const UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createMarkupInstance(const Locale&, const UnicodeString&, const UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createSuperscriptInstance(DecimalFormat*, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createSuperscriptInstance(const Locale&, UErrorCode&) | Draft→Stable 55
timezone.h | `static` TimeZone* icu::TimeZone::detectHostTimeZone() | Draft→Stable 55
uconfig.h | `#define` UCONFIG_ONLY_HTML_CONVERSION | Draft→Stable 55
udat.h | `enum` UDateFormatField::UDAT_TIME_SEPARATOR_FIELD | Draft 55 | Internal
udat.h | int32_t udat_formatCalendar(const UDateFormat*, UCalendar*, UChar*, int32_t, UFieldPosition*, UErrorCode*) | Draft→Stable 55
udat.h | int32_t udat_formatCalendarForFields(const UDateFormat*, UCalendar*, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*) | Draft→Stable 55
udat.h | int32_t udat_formatForFields(const UDateFormat*, UDate, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*) | Draft→Stable 55
ufieldpositer.h | UFieldPositionIterator* ufieldpositer_open(UErrorCode*) | Draft→Stable 55
ufieldpositer.h | int32_t ufieldpositer_next(UFieldPositionIterator*, int32_t*, int32_t*) | Draft→Stable 55
ufieldpositer.h | void ufieldpositer_close(UFieldPositionIterator*) | Draft→Stable 55
ulistformatter.h | UListFormatter* ulistfmt_open(const char*, UErrorCode*) | Draft→Stable 55
ulistformatter.h | int32_t ulistfmt_format(const UListFormatter*, const UChar* const strings[], const int32_t*, int32_t, UChar*, int32_t, UErrorCode*) | Draft→Stable 55
ulistformatter.h | void ulistfmt_close(UListFormatter*) | Draft→Stable 55
uregex.h | int32_t uregex_groupNumberFromCName(URegularExpression*, const char*, int32_t, UErrorCode*) | Draft→Stable 55
uregex.h | int32_t uregex_groupNumberFromName(URegularExpression*, const UChar*, int32_t, UErrorCode*) | Draft→Stable 55

(jump back to top)

## Promoted to stable in 57

File | API | 56 | 57
--- | --- | --- | ---
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(Calendar*, const UnicodeString&, const Locale&, UErrorCode&) | Draft→Stable 55
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(const UnicodeString&, UErrorCode&) | Draft→Stable 55
datefmt.h | `static` DateFormat* icu::DateFormat::createInstanceForSkeleton(const UnicodeString&, const Locale&, UErrorCode&) | Draft→Stable 55
localpointer.h | icu::LocalPointer< T >::LocalPointer(T*, UErrorCode&) | Draft→Stable 55
localpointer.h | void icu::LocalPointer< T >::adoptInsteadAndCheckErrorCode(T*, UErrorCode&) | Draft→Stable 55
measfmt.h | UnicodeString& icu::MeasureFormat::formatMeasurePerUnit(const Measure&, const MeasureUnit&, UnicodeString&, FieldPosition&, UErrorCode&) | Draft→Stable 55
regex.h | UBool icu::RegexMatcher::find(UErrorCode&) | Draft→Stable 55
regex.h | int32_t icu::RegexPattern::groupNumberFromName(const UnicodeString&, UErrorCode&) | Draft→Stable 55
regex.h | int32_t icu::RegexPattern::groupNumberFromName(const char*, int32_t, UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getContainedRegions(UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getContainedRegions(URegionType, UErrorCode&) | Draft→Stable 55
region.h | StringEnumeration* icu::Region::getPreferredValues(UErrorCode&) | Draft→Stable 55
region.h | `static` StringEnumeration* icu::Region::getAvailable(URegionType, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | ScientificNumberFormatter* icu::ScientificNumberFormatter::clone() | Draft→Stable 55
scientificnumberformatter.h | UnicodeString& icu::ScientificNumberFormatter::format(const Formattable&, UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | icu::ScientificNumberFormatter::~ScientificNumberFormatter() | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createMarkupInstance(DecimalFormat*, const UnicodeString&, const UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createMarkupInstance(const Locale&, const UnicodeString&, const UnicodeString&, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createSuperscriptInstance(DecimalFormat*, UErrorCode&) | Draft→Stable 55
scientificnumberformatter.h | `static` ScientificNumberFormatter* icu::ScientificNumberFormatter::createSuperscriptInstance(const Locale&, UErrorCode&) | Draft→Stable 55
timezone.h | `static` TimeZone* icu::TimeZone::detectHostTimeZone() | Draft→Stable 55
uconfig.h | `#define` UCONFIG_ONLY_HTML_CONVERSION | Draft→Stable 55
udat.h | `enum` UDateFormatField::UDAT_FLEXIBLE_DAY_PERIOD_FIELD | (missing) | Stable 3.0
udat.h | int32_t udat_formatCalendar(const UDateFormat*, UCalendar*, UChar*, int32_t, UFieldPosition*, UErrorCode*) | Draft→Stable 55
udat.h | int32_t udat_formatCalendarForFields(const UDateFormat*, UCalendar*, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*) | Draft→Stable 55
udat.h | int32_t udat_formatForFields(const UDateFormat*, UDate, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*) | Draft→Stable 55
ufieldpositer.h | UFieldPositionIterator* ufieldpositer_open(UErrorCode*) | Draft→Stable 55
ufieldpositer.h | int32_t ufieldpositer_next(UFieldPositionIterator*, int32_t*, int32_t*) | Draft→Stable 55
ufieldpositer.h | void ufieldpositer_close(UFieldPositionIterator*) | Draft→Stable 55
ulistformatter.h | UListFormatter* ulistfmt_open(const char*, UErrorCode*) | Draft→Stable 55
ulistformatter.h | int32_t ulistfmt_format(const UListFormatter*, const UChar* const strings[], const int32_t*, int32_t, UChar*, int32_t, UErrorCode*) | Draft→Stable 55
ulistformatter.h | void ulistfmt_close(UListFormatter*) | Draft→Stable 55
uregex.h | int32_t uregex_groupNumberFromCName(URegularExpression*, const char*, int32_t, UErrorCode*) | Draft→Stable 55
uregex.h | int32_t uregex_groupNumberFromName(URegularExpression*, const UChar*, int32_t, UErrorCode*) | Draft→Stable 55
utypes.h | `enum` UErrorCode::U_REGEX_INVALID_CAPTURE_GROUP_NAME | (missing) | Stable 55
utypes.h | `enum` UErrorCode::U_REGEX_PATTERN_TOO_BIG | (missing) | Stable 55

(jump back to top)

## Added in 57

File | API | 56 | 57
--- | --- | --- | ---
listformatter.h | icu::ListFormatter::ListFormatter(const ListFormatData&, UErrorCode&) | (missing) | Internal
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createGallonImperial(UErrorCode&) | (missing) | Draft 57
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createMilePerGallonImperial(UErrorCode&) | (missing) | Draft 57
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createMilligramPerDeciliter(UErrorCode&) | (missing) | Draft 57
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createMillimolePerLiter(UErrorCode&) | (missing) | Draft 57
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createPartPerMillion(UErrorCode&) | (missing) | Draft 57
measunit.h | `static` int32_t icu::MeasureUnit::internalGetIndexForTypeAndSubtype(const char*, const char*) | (missing) | Internal
platform.h | `#define` U_FALLTHROUGH | (missing) | Internal
platform.h | `#define` __has_cpp_attribute | (missing) | Internal
platform.h | `#define` __has_warning | (missing) | Internal
reldatefmt.h | UnicodeString& icu::RelativeDateTimeFormatter::format(double, URelativeDateTimeUnit, UnicodeString&, UErrorCode&) | (missing) | Draft 57
reldatefmt.h | UnicodeString& icu::RelativeDateTimeFormatter::formatNumeric(double, URelativeDateTimeUnit, UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | SimpleFormatter& icu::SimpleFormatter::operator=(const SimpleFormatter&) | (missing) | Draft 57
simpleformatter.h | UBool icu::SimpleFormatter::applyPattern(const UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UBool icu::SimpleFormatter::applyPatternMinMaxArguments(const UnicodeString&, int32_t, int32_t, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UnicodeString icu::SimpleFormatter::getTextWithNoArguments() | (missing) | Draft 57
simpleformatter.h | UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, const UnicodeString&, UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, const UnicodeString&, const UnicodeString&, UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UnicodeString& icu::SimpleFormatter::formatAndAppend(const UnicodeString* const*, int32_t, UnicodeString&, int32_t*, int32_t, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | UnicodeString& icu::SimpleFormatter::formatAndReplace(const UnicodeString* const*, int32_t, UnicodeString&, int32_t*, int32_t, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | icu::SimpleFormatter::SimpleFormatter() | (missing) | Draft 57
simpleformatter.h | icu::SimpleFormatter::SimpleFormatter(const SimpleFormatter&) | (missing) | Draft 57
simpleformatter.h | icu::SimpleFormatter::SimpleFormatter(const UnicodeString&, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | icu::SimpleFormatter::SimpleFormatter(const UnicodeString&, int32_t, int32_t, UErrorCode&) | (missing) | Draft 57
simpleformatter.h | icu::SimpleFormatter::~SimpleFormatter() | (missing) | Draft 57
simpleformatter.h | int32_t icu::SimpleFormatter::getArgumentLimit() | (missing) | Draft 57
uchar.h | `enum` UProperty::UCHAR_EMOJI_MODIFIER_BASE | (missing) | Draft 57
uchar.h | `enum` UProperty::UCHAR_EMOJI_MODIFIER | (missing) | Draft 57
uchar.h | `enum` UProperty::UCHAR_EMOJI_PRESENTATION | (missing) | Draft 57
uchar.h | `enum` UProperty::UCHAR_EMOJI | (missing) | Draft 57
udat.h | `enum` UDateFormatField::UDAT_AM_PM_MIDNIGHT_NOON_FIELD | (missing) | Draft 57
udat.h | `enum` UDateFormatField::UDAT_FLEXIBLE_DAY_PERIOD_FIELD | (missing) | Stable 3.0
ureldatefmt.h | URelativeDateTimeFormatter* ureldatefmt_open(const char*, UNumberFormat*, UDateRelativeDateTimeFormatterStyle, UDisplayContext, UErrorCode*) | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_COUNT | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_DAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_FRIDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_HOUR | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_MINUTE | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_MONDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_MONTH | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_QUARTER | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_SATURDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_SECOND | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_SUNDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_THURSDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_TUESDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_WEDNESDAY | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_WEEK | (missing) | Draft 57
ureldatefmt.h | `enum` URelativeDateTimeUnit::UDAT_REL_UNIT_YEAR | (missing) | Draft 57
ureldatefmt.h | int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter*, const UChar*, int32_t, const UChar*, int32_t, UChar*, int32_t, UErrorCode*) | (missing) | Draft 57
ureldatefmt.h | int32_t ureldatefmt_format(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*) | (missing) | Draft 57
ureldatefmt.h | int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*) | (missing) | Draft 57
ureldatefmt.h | void ureldatefmt_close(URelativeDateTimeFormatter*) | (missing) | Draft 57
utypes.h | `enum` UErrorCode::U_REGEX_INVALID_CAPTURE_GROUP_NAME | (missing) | Stable 55
utypes.h | `enum` UErrorCode::U_REGEX_PATTERN_TOO_BIG | (missing) | Stable 55

(jump back to top)

## Other existing drafts in 57

File | API | 56 | 57
--- | --- | --- | ---
compactdecimalformat.h | UnicodeString& icu::CompactDecimalFormat::format(int32_t, UnicodeString&, FieldPosition&) | Draft 56
dtptngen.h | `static` UnicodeString icu::DateTimePatternGenerator::staticGetBaseSkeleton(const UnicodeString&, UErrorCode&) | Draft 56
dtptngen.h | `static` UnicodeString icu::DateTimePatternGenerator::staticGetSkeleton(const UnicodeString&, UErrorCode&) | Draft 56
filteredbrk.h | BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&) | Draft 56
filteredbrk.h | UBool icu::FilteredBreakIteratorBuilder::suppressBreakAfter(const UnicodeString&, UErrorCode&) | Draft 56
filteredbrk.h | UBool icu::FilteredBreakIteratorBuilder::unsuppressBreakAfter(const UnicodeString&, UErrorCode&) | Draft 56
filteredbrk.h | icu::FilteredBreakIteratorBuilder::~FilteredBreakIteratorBuilder() | Draft 56
filteredbrk.h | `static` FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&) | Draft 56
filteredbrk.h | `static` FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(const Locale&, UErrorCode&) | Draft 56
localpointer.h | LocalArray<T>& icu::LocalArray< T >::moveFrom(LocalArray< T >&) U_NOEXCEPT | Draft 56
localpointer.h | LocalPointer<T>& icu::LocalPointer< T >::moveFrom(LocalPointer< T >&) U_NOEXCEPT | Draft 56
localpointer.h | icu::LocalArray< T >::LocalArray(T*, UErrorCode&) | Draft 56
localpointer.h | void icu::LocalArray< T >::adoptInsteadAndCheckErrorCode(T*, UErrorCode&) | Draft 56
localpointer.h | void icu::LocalArray< T >::swap(LocalArray< T >&) U_NOEXCEPT | Draft 56
localpointer.h | void icu::LocalPointer< T >::swap(LocalPointer< T >&) U_NOEXCEPT | Draft 56
measfmt.h | void icu::MeasureFormat::parseObject(const UnicodeString&, Formattable&, ParsePosition&) | Draft 53
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createCentury(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createCupMetric(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createGenericTemperature(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createKnot(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createLiterPer100Kilometers(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createMileScandinavian(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createPintMetric(UErrorCode&) | Draft 56
measunit.h | `static` MeasureUnit* icu::MeasureUnit::createRevolutionAngle(UErrorCode&) | Draft 56
udat.h | `enum` UDateFormatBooleanAttribute::UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH | Draft 56
udat.h | `enum` UDateFormatBooleanAttribute::UDAT_PARSE_PARTIAL_LITERAL_MATCH | Draft 56
unistr.h | `#define` UNISTR_OBJECT_SIZE | Draft 56
unistr.h | UnicodeString& icu::UnicodeString::moveFrom(UnicodeString&) U_NOEXCEPT | Draft 56
unistr.h | void icu::UnicodeString::swap(UnicodeString&) U_NOEXCEPT | Draft 56
unum.h | `enum` UNumberFormatStyle::UNUM_CURRENCY_STANDARD | Draft 56
unum.h | `enum` UNumberFormatStyle::UNUM_DECIMAL_COMPACT_LONG | Draft 56
unum.h | `enum` UNumberFormatStyle::UNUM_DECIMAL_COMPACT_SHORT | Draft 56
uregex.h | `enum` URegexpFlag::UREGEX_CANON_EQ | Draft 2.4

(jump back to top)

## Signature Simplifications

This section shows cases where the signature was "simplified" for the sake of comparison. The simplified form is in bold, followed by all possible variations in "original" form.

(jump back to top)

Contents generated by StableAPI tool on Tue Mar 08 21:25:12 PST 2016
Copyright (C) 2016, International Business Machines Corporation, All Rights Reserved.