// © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING && !UPRV_INCOMPLETE_CPP11_SUPPORT #include "number_decimfmtprops.h" using namespace icu; using namespace icu::number; using namespace icu::number::impl; DecimalFormatProperties::DecimalFormatProperties() { clear(); } void DecimalFormatProperties::clear() { compactStyle.nullify(); currency.nullify(); currencyPluralInfo.fPtr.adoptInstead(nullptr); currencyUsage.nullify(); decimalPatternMatchRequired = false; decimalSeparatorAlwaysShown = false; exponentSignAlwaysShown = false; formatWidth = -1; groupingSize = -1; magnitudeMultiplier = 0; maximumFractionDigits = -1; maximumIntegerDigits = -1; maximumSignificantDigits = -1; minimumExponentDigits = -1; minimumFractionDigits = -1; minimumGroupingDigits = -1; minimumIntegerDigits = -1; minimumSignificantDigits = -1; multiplier = 0; negativePrefix.setToBogus(); negativePrefixPattern.setToBogus(); negativeSuffix.setToBogus(); negativeSuffixPattern.setToBogus(); padPosition.nullify(); padString.setToBogus(); parseCaseSensitive = false; parseIntegerOnly = false; parseLenient = false; parseNoExponent = false; parseToBigDecimal = false; positivePrefix.setToBogus(); positivePrefixPattern.setToBogus(); positiveSuffix.setToBogus(); positiveSuffixPattern.setToBogus(); roundingIncrement = 0.0; roundingMode.nullify(); secondaryGroupingSize = -1; signAlwaysShown = false; } bool DecimalFormatProperties::operator==(const DecimalFormatProperties &other) const { bool eq = true; eq = eq && compactStyle == other.compactStyle; eq = eq && currency == other.currency; eq = eq && currencyPluralInfo.fPtr.getAlias() == other.currencyPluralInfo.fPtr.getAlias(); eq = eq && currencyUsage == other.currencyUsage; eq = eq && decimalPatternMatchRequired == other.decimalPatternMatchRequired; eq = eq && decimalSeparatorAlwaysShown == other.decimalSeparatorAlwaysShown; eq = eq && exponentSignAlwaysShown == other.exponentSignAlwaysShown; eq = eq && formatWidth == other.formatWidth; eq = eq && groupingSize == other.groupingSize; eq = eq && magnitudeMultiplier == other.magnitudeMultiplier; eq = eq && maximumFractionDigits == other.maximumFractionDigits; eq = eq && maximumIntegerDigits == other.maximumIntegerDigits; eq = eq && maximumSignificantDigits == other.maximumSignificantDigits; eq = eq && minimumExponentDigits == other.minimumExponentDigits; eq = eq && minimumFractionDigits == other.minimumFractionDigits; eq = eq && minimumGroupingDigits == other.minimumGroupingDigits; eq = eq && minimumIntegerDigits == other.minimumIntegerDigits; eq = eq && minimumSignificantDigits == other.minimumSignificantDigits; eq = eq && multiplier == other.multiplier; eq = eq && negativePrefix == other.negativePrefix; eq = eq && negativePrefixPattern == other.negativePrefixPattern; eq = eq && negativeSuffix == other.negativeSuffix; eq = eq && negativeSuffixPattern == other.negativeSuffixPattern; eq = eq && padPosition == other.padPosition; eq = eq && padString == other.padString; eq = eq && parseCaseSensitive == other.parseCaseSensitive; eq = eq && parseIntegerOnly == other.parseIntegerOnly; eq = eq && parseLenient == other.parseLenient; eq = eq && parseNoExponent == other.parseNoExponent; eq = eq && parseToBigDecimal == other.parseToBigDecimal; eq = eq && positivePrefix == other.positivePrefix; eq = eq && positivePrefixPattern == other.positivePrefixPattern; eq = eq && positiveSuffix == other.positiveSuffix; eq = eq && positiveSuffixPattern == other.positiveSuffixPattern; eq = eq && roundingIncrement == other.roundingIncrement; eq = eq && roundingMode == other.roundingMode; eq = eq && secondaryGroupingSize == other.secondaryGroupingSize; eq = eq && signAlwaysShown == other.signAlwaysShown; return eq; } #endif /* #if !UCONFIG_NO_FORMATTING */