From: Andy Heninger Date: Wed, 27 Sep 2017 06:44:13 +0000 (+0000) Subject: ICU-13177 NumberFormatter, Visual Studio fixes, work in progress. X-Git-Tag: release-60-rc~98^2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2e59330cdc1dce06492e8d918d2acbc14c0ceea;p=icu ICU-13177 NumberFormatter, Visual Studio fixes, work in progress. X-SVN-Rev: 40475 --- diff --git a/icu4c/source/i18n/i18n.vcxproj b/icu4c/source/i18n/i18n.vcxproj index 3be00882cfb..3dd3378a521 100644 --- a/icu4c/source/i18n/i18n.vcxproj +++ b/icu4c/source/i18n/i18n.vcxproj @@ -352,6 +352,24 @@ + + + + + + + + + + + + + + + + + + @@ -1692,6 +1710,28 @@ + + + + + + + + + + + + + + + + copy "%(FullPath)" ..\..\include\unicode + ..\..\include\unicode\%(Filename)%(Extension);%(Outputs) + + + copy "%(FullPath)" ..\..\include\unicode + ..\..\include\unicode\%(Filename)%(Extension);%(Outputs) + diff --git a/icu4c/source/i18n/i18n.vcxproj.filters b/icu4c/source/i18n/i18n.vcxproj.filters index c7b477ce46b..33b60659b21 100644 --- a/icu4c/source/i18n/i18n.vcxproj.filters +++ b/icu4c/source/i18n/i18n.vcxproj.filters @@ -754,6 +754,55 @@ formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + + formatting @@ -1133,6 +1182,12 @@ formatting + + formatting + + + formatting + formatting diff --git a/icu4c/source/i18n/number_padding.cpp b/icu4c/source/i18n/number_padding.cpp index 641fc5d00f2..fb1d8173a16 100644 --- a/icu4c/source/i18n/number_padding.cpp +++ b/icu4c/source/i18n/number_padding.cpp @@ -43,8 +43,8 @@ Padder Padder::codePoints(UChar32 cp, int32_t targetWidth, UNumberFormatPadPosit } } -int32_t Padder::padAndApply(const impl::Modifier &mod1, const impl::Modifier &mod2, - impl::NumberStringBuilder &string, int32_t leftIndex, int32_t rightIndex, +int32_t Padder::padAndApply(const Modifier &mod1, const Modifier &mod2, + NumberStringBuilder &string, int32_t leftIndex, int32_t rightIndex, UErrorCode &status) const { int32_t modLength = mod1.getCodePointCount(status) + mod2.getCodePointCount(status); int32_t requiredPadding = fWidth - modLength - string.codePointCount(); diff --git a/icu4c/source/i18n/number_scientific.cpp b/icu4c/source/i18n/number_scientific.cpp index db63f854b75..05e9549c653 100644 --- a/icu4c/source/i18n/number_scientific.cpp +++ b/icu4c/source/i18n/number_scientific.cpp @@ -84,9 +84,10 @@ bool ScientificModifier::isStrong() const { return true; } -ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols, - const MicroPropsGenerator *parent) : fSettings( - notation->fUnion.scientific), fSymbols(symbols), fParent(parent) {} +// Note: Visual Studio does not compile this function without full name space. Why? +icu::number::impl::ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols, + const MicroPropsGenerator *parent) : + fSettings(notation->fUnion.scientific), fSymbols(symbols), fParent(parent) {} void ScientificHandler::processQuantity(DecimalQuantity &quantity, MicroProps µs, UErrorCode &status) const { diff --git a/icu4c/source/i18n/plurrule_impl.h b/icu4c/source/i18n/plurrule_impl.h index a7e2654febf..776ba0db396 100644 --- a/icu4c/source/i18n/plurrule_impl.h +++ b/icu4c/source/i18n/plurrule_impl.h @@ -225,7 +225,7 @@ enum PluralOperand { * An interface to FixedDecimal, allowing for other implementations. * @internal */ -class IFixedDecimal { +class U_I18N_API IFixedDecimal { public: virtual ~IFixedDecimal() = default; diff --git a/icu4c/source/i18n/unicode/numberformatter.h b/icu4c/source/i18n/unicode/numberformatter.h index 24dabbee31b..c8414363d93 100644 --- a/icu4c/source/i18n/unicode/numberformatter.h +++ b/icu4c/source/i18n/unicode/numberformatter.h @@ -1681,7 +1681,7 @@ class UnlocalizedNumberFormatter const NumberFormatterSettings &other); // To give the fluent setters access to this class's constructor: - friend class NumberFormatterSettings; + friend class NumberFormatterSettings; // To give NumberFormatter::with() access to this class's constructor: friend class NumberFormatter; @@ -1762,7 +1762,8 @@ class LocalizedNumberFormatter FormattedNumber formatImpl(impl::NumberFormatterResults *results, UErrorCode &status) const; // To give the fluent setters access to this class's constructor: - friend class NumberFormatterSettings; + friend class NumberFormatterSettings; + friend class NumberFormatterSettings; // To give UnlocalizedNumberFormatter::locale() access to this class's constructor: friend class UnlocalizedNumberFormatter; diff --git a/icu4c/source/test/intltest/intltest.vcxproj b/icu4c/source/test/intltest/intltest.vcxproj index af34ac53765..148b42c0187 100644 --- a/icu4c/source/test/intltest/intltest.vcxproj +++ b/icu4c/source/test/intltest/intltest.vcxproj @@ -324,6 +324,13 @@ + + + + + + + @@ -495,6 +502,7 @@ + diff --git a/icu4c/source/test/intltest/intltest.vcxproj.filters b/icu4c/source/test/intltest/intltest.vcxproj.filters index 39a3e4ef251..384f6da184e 100644 --- a/icu4c/source/test/intltest/intltest.vcxproj.filters +++ b/icu4c/source/test/intltest/intltest.vcxproj.filters @@ -259,6 +259,27 @@ formatting + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + + + formatting + formatting @@ -681,6 +702,9 @@ formatting + + formatting + formatting