On 03/10/2012 04:39 PM, Lubos Lunak wrote:
commit 34f8495dd948e2ad9d64c2c19110e69840cefd1a
Author: Luboš Luňák<[email protected]>
Date:   Sat Mar 10 15:37:02 2012 +0100

     exported templates need to be marked as such

     Otherwise their instances created in other modules may end up
     as non-exported even when used by something exported.

diff --git a/cppuhelper/inc/cppuhelper/compbase.hxx 
b/cppuhelper/inc/cppuhelper/compbase.hxx
index 60e99ee..e590412 100644
--- a/cppuhelper/inc/cppuhelper/compbase.hxx
+++ b/cppuhelper/inc/cppuhelper/compbase.hxx
@@ -41,7 +41,7 @@
  namespace cppu \
  { \
  template<  __CLASS_IFC##N>  \
-class SAL_NO_VTABLE WeakComponentImplHelper##N \
+class SAL_NO_VTABLE CPPUHELPER_DLLPUBLIC WeakComponentImplHelper##N \
      : public ::cppu::WeakComponentImplHelperBase \
      , public ImplHelperBase##N<  __IFC##N>  \
  { \

Does this workaround for <http://llvm.org/bugs/show_bug.cgi?id=10113> (where I'm still not convinced it is a user error vs. a compiler error) work well with MSVC? I wonder because there all consumers of the template (outside of cppuhelper) will see it as __declspec(dllimport), and (as long as there is no instantiation in cppuhelper) there is no place that would emit it as __declspec(dllexport).

Stephan
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to