ICU-13448 Feedback from clang expert was that these should not be specific to MSVC, but rather they should be specific to the Windows platform.

X-SVN-Rev: 40643
This commit is contained in:
Jeff Genovy 2017-10-26 06:49:15 +00:00
parent f6e3124e74
commit a799b3d3ff
5 changed files with 11 additions and 9 deletions

View File

@ -34,12 +34,12 @@ class UVector32;
// Export an explicit template instantiation of the MaybeStackArray that
// is used as a data member of CEBuffer.
//
// MSVC requires this, even though it should not be necessary.
// No direct access to the MaybeStackArray leaks out of the i18n library.
// When building DLLs for Windows this is required even though
// no direct access to the MaybeStackArray leaks out of the i18n library.
//
// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
//
#if defined (_MSC_VER)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
template class U_I18N_API MaybeStackArray<int64_t, CEBUFFER_INITIAL_CAPACITY>;
#endif

View File

@ -19,8 +19,8 @@ U_NAMESPACE_BEGIN
// Export an explicit template instantiation of the LocalPointer that is used as a
// data member of CurrencyPluralInfoWrapper.
// (MSVC requires this, even though it should not be necessary.)
#if defined (_MSC_VER)
// (When building DLLs for Windows this is required.)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
#pragma warning(suppress: 4661)
template class U_I18N_API LocalPointerBase<CurrencyPluralInfo>;

View File

@ -18,8 +18,8 @@ U_NAMESPACE_BEGIN
// Export an explicit template instantiation of the LocalPointer that is used as a
// data member of ParameterizedModifier.
// (MSVC requires this, even though it should not be necessary.)
#if defined (_MSC_VER)
// (When building DLLs for Windows this is required.)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
#pragma warning(suppress: 4661)
template class U_I18N_API LocalPointerBase<number::impl::ParameterizedModifier>;

View File

@ -44,7 +44,8 @@ class TimeZone;
class DateTimePatternGenerator;
// explicit template instantiation. see digitlst.h
#if defined (_MSC_VER)
// (When building DLLs for Windows this is required.)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
template class U_I18N_API EnumSet<UDateFormatBooleanAttribute,
0,
UDAT_BOOLEAN_ATTRIBUTE_COUNT>;

View File

@ -67,7 +67,8 @@ class PluralRules;
class VisibleDigitsWithExponent;
// explicit template instantiation. see digitlst.h
#if defined (_MSC_VER)
// (When building DLLs for Windows this is required.)
#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
template class U_I18N_API EnumSet<UNumberFormatAttribute,
UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;