From: Jeff Genovy <29107334+jefgen@users.noreply.github.com> Date: Wed, 25 Oct 2017 17:11:37 +0000 (+0000) Subject: ICU-13411 Additional fix for template exports. X-Git-Tag: release-61-rc~203 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e83872364b271eec4e1dca7a2c2efe73173203f4;p=icu ICU-13411 Additional fix for template exports. X-SVN-Rev: 40635 --- diff --git a/icu4c/source/i18n/number_decimfmtprops.h b/icu4c/source/i18n/number_decimfmtprops.h index a179d0876ab..d144dfb71b3 100644 --- a/icu4c/source/i18n/number_decimfmtprops.h +++ b/icu4c/source/i18n/number_decimfmtprops.h @@ -16,8 +16,6 @@ #include "number_types.h" U_NAMESPACE_BEGIN -namespace number { -namespace impl { // Export an explicit template instantiation of the LocalPointer that is used as a // data member of CurrencyPluralInfoWrapper. @@ -25,10 +23,13 @@ namespace impl { #if defined (_MSC_VER) // Ignore warning 4661 as LocalPointerBase does not use operator== or operator!= #pragma warning(suppress: 4661) -template class U_I18N_API LocalPointerBase; -template class U_I18N_API LocalPointer; +template class U_I18N_API LocalPointerBase; +template class U_I18N_API LocalPointer; #endif +namespace number { +namespace impl { + // TODO: Figure out a nicer way to deal with CurrencyPluralInfo. // Exported as U_I18N_API because it is a public member field of exported DecimalFormatProperties struct U_I18N_API CurrencyPluralInfoWrapper { diff --git a/icu4c/source/i18n/number_patternmodifier.h b/icu4c/source/i18n/number_patternmodifier.h index 3679ad1f9ff..705037f0ba7 100644 --- a/icu4c/source/i18n/number_patternmodifier.h +++ b/icu4c/source/i18n/number_patternmodifier.h @@ -15,11 +15,6 @@ #include "number_utils.h" U_NAMESPACE_BEGIN -namespace number { -namespace impl { - -// Forward declaration -class MutablePatternModifier; // Export an explicit template instantiation of the LocalPointer that is used as a // data member of ParameterizedModifier. @@ -27,10 +22,16 @@ class MutablePatternModifier; #if defined (_MSC_VER) // Ignore warning 4661 as LocalPointerBase does not use operator== or operator!= #pragma warning(suppress: 4661) -template class U_I18N_API LocalPointerBase; -template class U_I18N_API LocalPointer; +template class U_I18N_API LocalPointerBase; +template class U_I18N_API LocalPointer; #endif +namespace number { +namespace impl { + +// Forward declaration +class MutablePatternModifier; + // Exported as U_I18N_API because it is needed for the unit test PatternModifierTest class U_I18N_API ImmutablePatternModifier : public MicroPropsGenerator, public UMemory { public: