[Libreoffice-commits] core.git: include/rtl
Noel (via logerrit)
logerrit at kemper.freedesktop.org
Fri Feb 12 13:33:46 UTC 2021
include/rtl/ref.hxx | 12 ++++++++++++
1 file changed, 12 insertions(+)
New commits:
commit 138064713af2db8e797e3aa441657f6a7500cc46
Author: Noel <noel.grandin at collabora.co.uk>
AuthorDate: Fri Feb 12 12:48:54 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Feb 12 14:33:02 2021 +0100
add conversion operator to rtl::Reference
to make it easier to convert to uno::Reference
Change-Id: I7ec1d66651e21ec71f1eef035d7ed3d6acc70b91
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110810
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/include/rtl/ref.hxx b/include/rtl/ref.hxx
index 37cbad4da8c0..38dfe3769e81 100644
--- a/include/rtl/ref.hxx
+++ b/include/rtl/ref.hxx
@@ -31,6 +31,7 @@
#include <functional>
#ifdef LIBO_INTERNAL_ONLY
#include <type_traits>
+#include "com/sun/star/uno/Reference.h"
#endif
#include "sal/types.h"
@@ -107,6 +108,17 @@ public:
if (m_pBody)
m_pBody->acquire();
}
+
+ /** Up-casting conversion operator to convert to css::uno::Interface
+
+ Does not work for up-casts to ambiguous bases.
+ */
+ template< class super_type,
+ std::enable_if_t<std::is_base_of_v<super_type, reference_type>, int> = 0 >
+ inline operator css::uno::Reference<super_type>() const
+ {
+ return css::uno::Reference<super_type>(m_pBody);
+ }
#endif
/** Destructor...
More information about the Libreoffice-commits
mailing list