ICU-13411 Additional fix for template exports.

X-SVN-Rev: 40635
This commit is contained in:
Jeff Genovy 2017-10-25 17:11:37 +00:00
parent 46dd205917
commit e83872364b
2 changed files with 13 additions and 11 deletions

View file

@ -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<CurrencyPluralInfo>;
template class U_I18N_API LocalPointer<CurrencyPluralInfo>;
template class U_I18N_API LocalPointerBase<number::impl::CurrencyPluralInfo>;
template class U_I18N_API LocalPointer<number::impl::CurrencyPluralInfo>;
#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 {

View file

@ -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<ParameterizedModifier>;
template class U_I18N_API LocalPointer<ParameterizedModifier>;
template class U_I18N_API LocalPointerBase<number::impl::ParameterizedModifier>;
template class U_I18N_API LocalPointer<number::impl::ParameterizedModifier>;
#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: