ICU-13177 NumberFormatter, Visual Studio fixes, work in progress.

X-SVN-Rev: 40475
This commit is contained in:
Andy Heninger 2017-09-27 06:44:13 +00:00
parent 2d49e73b8a
commit d2e59330cd
8 changed files with 137 additions and 8 deletions

View file

@ -352,6 +352,24 @@
<ClCompile Include="nfrs.cpp" />
<ClCompile Include="nfrule.cpp" />
<ClCompile Include="nfsubs.cpp" />
<ClCompile Include="nounit.cpp" />
<ClCompile Include="number_affixutils.cpp" />
<ClCompile Include="number_compact.cpp" />
<ClCompile Include="number_decimalquantity.cpp" />
<ClCompile Include="number_decimfmtprops.cpp" />
<ClCompile Include="number_fluent.cpp" />
<ClCompile Include="number_formatimpl.cpp" />
<ClCompile Include="number_grouping.cpp" />
<ClCompile Include="number_integerwidth.cpp" />
<ClCompile Include="number_longnames.cpp" />
<ClCompile Include="number_modifiers.cpp" />
<ClCompile Include="number_notation.cpp" />
<ClCompile Include="number_padding.cpp" />
<ClCompile Include="number_patternmodifier.cpp" />
<ClCompile Include="number_patternstring.cpp" />
<ClCompile Include="number_rounding.cpp" />
<ClCompile Include="number_scientific.cpp" />
<ClCompile Include="number_stringbuilder.cpp" />
<ClCompile Include="numfmt.cpp" />
<ClCompile Include="numsys.cpp" />
<ClCompile Include="olsontz.cpp" />
@ -1692,6 +1710,28 @@
<ClInclude Include="scriptset.h" />
<ClInclude Include="uspoof_conf.h" />
<ClInclude Include="uspoof_impl.h" />
<ClInclude Include="number_affixutils.h" />
<ClInclude Include="number_compact.h" />
<ClInclude Include="number_decimalquantity.h" />
<ClInclude Include="number_decimfmtprops.h" />
<ClInclude Include="number_formatimpl.h" />
<ClInclude Include="number_longnames.h" />
<ClInclude Include="number_modifiers.h" />
<ClInclude Include="number_patternmodifier.h" />
<ClInclude Include="number_patternstring.h" />
<ClInclude Include="number_roundingutils.h" />
<ClInclude Include="number_scientific.h" />
<ClInclude Include="number_stringbuilder.h" />
<ClInclude Include="number_types.h" />
<ClInclude Include="number_utils.h" />
<CustomBuild Include="unicode\nounit.h">
<Command>copy "%(FullPath)" ..\..\include\unicode </Command>
<Outputs>..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="unicode\numberformatter.h">
<Command>copy "%(FullPath)" ..\..\include\unicode </Command>
<Outputs>..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="i18n.rc" />

View file

@ -754,6 +754,55 @@
<ClInclude Include="nfsubs.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_affixutils.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_compact.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_decimalquantity.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_decimfmtprops.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_formatimpl.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_longnames.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_modifiers.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_patternmodifier.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_patternstring.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_roundingutils.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_scientific.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_stringbuilder.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_types.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="number_utils.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="olsontz.h">
<Filter>formatting</Filter>
</ClInclude>
@ -1133,6 +1182,12 @@
<CustomBuild Include="unicode\msgfmt.h">
<Filter>formatting</Filter>
</CustomBuild>
<CustomBuild Include="unicode/nounit.h">
<Filter>formatting</Filter>
</CustomBuild>
<CustomBuild Include="/numberformatter.h">
<Filter>formatting</Filter>
</CustomBuild>
<CustomBuild Include="unicode\numfmt.h">
<Filter>formatting</Filter>
</CustomBuild>

View file

@ -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();

View file

@ -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 &micros,
UErrorCode &status) const {

View file

@ -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;

View file

@ -1681,7 +1681,7 @@ class UnlocalizedNumberFormatter
const NumberFormatterSettings<UnlocalizedNumberFormatter> &other);
// To give the fluent setters access to this class's constructor:
friend class NumberFormatterSettings;
friend class NumberFormatterSettings<UnlocalizedNumberFormatter>;
// 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<UnlocalizedNumberFormatter>;
friend class NumberFormatterSettings<LocalizedNumberFormatter>;
// To give UnlocalizedNumberFormatter::locale() access to this class's constructor:
friend class UnlocalizedNumberFormatter;

View file

@ -324,6 +324,13 @@
<ClCompile Include="nmfmapts.cpp" />
<ClCompile Include="nmfmtrt.cpp" />
<ClCompile Include="numberformattesttuple.cpp" />
<ClCompile Include="numbertest_affixutils.cpp" />
<ClCompile Include="numbertest_api.cpp" />
<ClCompile Include="numbertest_decimalquantity.cpp" />
<ClCompile Include="numbertest_modifiers.cpp" />
<ClCompile Include="numbertest_patternmodifier.cpp" />
<ClCompile Include="numbertest_patternstring.cpp" />
<ClCompile Include="numbertest_stringbuilder.cpp" />
<ClCompile Include="numberformat2test.cpp" />
<ClCompile Include="numfmtst.cpp" />
<ClCompile Include="numrgts.cpp" />
@ -495,6 +502,7 @@
<ClInclude Include="msfmrgts.h" />
<ClInclude Include="nmfmapts.h" />
<ClInclude Include="nmfmtrt.h" />
<ClInclude Include="numbertest.h" />
<ClInclude Include="numberformattesttuple.h" />
<ClInclude Include="numfmtst.h" />
<ClInclude Include="numrgts.h" />

View file

@ -259,6 +259,27 @@
<ClCompile Include="numberformat2test.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_affixutils.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_api.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_decimalquantity.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_modifiers.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_patternmodifier.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_patternstring.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numbertest_stringbuilder.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="numfmtst.cpp">
<Filter>formatting</Filter>
</ClCompile>
@ -681,6 +702,9 @@
<ClInclude Include="numberformattesttuple.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="numbertest.h">
<Filter>formatting</Filter>
</ClInclude>
<ClInclude Include="numfmtst.h">
<Filter>formatting</Filter>
</ClInclude>