diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-03-05 13:19:41 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-03-05 15:10:37 +0000 |
commit | 177f5c2e505b7978fc232a891577a448e49b290d (patch) | |
tree | 8fcb4ca27cfdb49ee44d884809c60455b5ecfa03 /include/svl/aeitem.hxx | |
parent | d8a47a23114ce9b4a743d0da35dfb93dadc07d11 (diff) |
Proper fix for multiply defined SfxEnumItem<sal_uInt16> with MSVC
With --disable-pch the original hack from
f091259ad2ec1590714645839668580cd7b8c7c4 "convert SfxEnumItem to type-safe
template class" doesn't happen to work: When linking sd, the occurrences of
SfxEnumItem<sal_uInt16> in sd/inc/sdattr.hxx clash with those from editeng
(where LanguageType is a typedef for sal_uInt16) and svl (as the respective
include files from editeng and svl happen to not be included). For whatever
reason, the explicit instantiation declaration without a __declspec(...) in
include/svl/eitem.hxx doesn't seem to make a difference (at least with MSVC 2015
Update 3).
Change-Id: I51b5943fe19a7184db9414192c6364f7c26b79eb
Reviewed-on: https://gerrit.libreoffice.org/34903
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'include/svl/aeitem.hxx')
-rw-r--r-- | include/svl/aeitem.hxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/include/svl/aeitem.hxx b/include/svl/aeitem.hxx index ee38084a04c7..d203e2383f12 100644 --- a/include/svl/aeitem.hxx +++ b/include/svl/aeitem.hxx @@ -26,7 +26,19 @@ class SfxAllEnumValueArr; -class SVL_DLLPUBLIC SfxAllEnumItem: public SfxEnumItem<sal_uInt16> +// MSVC hack: +class SfxAllEnumItem_Base: public SfxEnumItem<sal_uInt16> { +protected: + explicit SfxAllEnumItem_Base(sal_uInt16 nWhich, sal_uInt16 nValue): + SfxEnumItem(nWhich, nValue) + {} + + explicit SfxAllEnumItem_Base(sal_uInt16 const nWhich, SvStream & rStream): + SfxEnumItem(nWhich, rStream) + {} +}; + +class SVL_DLLPUBLIC SfxAllEnumItem: public SfxAllEnumItem_Base { SfxAllEnumValueArr* pValues; std::vector<sal_uInt16>* pDisabledValues; |