Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/1928

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/28/1928/1

Introduce SAL_OVERRIDE

Change-Id: I3675b627d5e9ca19b2c4fb69fef12d0dabf94a43
---
M config/config_global.h.in
M configure.ac
M oox/inc/oox/vml/vmlshape.hxx
M sal/inc/sal/types.h
4 files changed, 49 insertions(+), 2 deletions(-)



diff --git a/config/config_global.h.in b/config/config_global.h.in
index 7080a69..0f85b59 100644
--- a/config/config_global.h.in
+++ b/config/config_global.h.in
@@ -13,6 +13,7 @@
 #define CONFIG_GLOBAL_H
 
 #undef HAVE_CXX11_DELETE
+#undef HAVE_CXX11_OVERRIDE
 #undef HAVE_GCC_BUILTIN_ATOMIC
 #undef HAVE_SFINAE_ANONYMOUS_BROKEN
 #undef HAVE_THREADSAFE_STATICS
diff --git a/configure.ac b/configure.ac
index eb0a434..10897a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5642,6 +5642,39 @@
     AC_MSG_RESULT([no (C++11 disabled)])
 fi
 
+dnl ==================================
+dnl Check for C++11 "override" support
+dnl ==================================
+
+AC_MSG_CHECKING([whether $CXX supports C++11 override syntax])
+if test "$HAVE_CXX0X" = "TRUE"; then
+    save_CXXFLAGS=$CXXFLAGS
+    CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
+    AC_LANG_PUSH([C++])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+struct A
+{
+        virtual void test();
+};
+
+struct B : A
+{
+        virtual void test() override;
+};
+]])],[HAVE_CXX11_OVERRIDE=TRUE],[])
+
+    AC_LANG_POP([C++])
+    CXXFLAGS=$save_CXXFLAGS
+    if test "$HAVE_CXX11_OVERRIDE" = "TRUE"; then
+        AC_MSG_RESULT([yes])
+        AC_DEFINE([HAVE_CXX11_OVERRIDE])
+    else
+        AC_MSG_RESULT([no])
+    fi
+else
+    AC_MSG_RESULT([no (C++11 disabled)])
+fi
+
 dnl ===================================================================
 dnl system stl sanity tests
 dnl ===================================================================
diff --git a/oox/inc/oox/vml/vmlshape.hxx b/oox/inc/oox/vml/vmlshape.hxx
index 8373d4f..f1a9652 100644
--- a/oox/inc/oox/vml/vmlshape.hxx
+++ b/oox/inc/oox/vml/vmlshape.hxx
@@ -340,9 +340,9 @@
 
 protected:
     /** Returns the absolute shape rectangle. */
-    virtual ::com::sun::star::awt::Rectangle getAbsRectangle() const;
+    virtual ::com::sun::star::awt::Rectangle getAbsRectangle() const SAL_OVERRIDE;
     /** Returns the rectangle relative to the parent coordinate system. */
-    virtual ::com::sun::star::awt::Rectangle getRelRectangle() const;
+    virtual ::com::sun::star::awt::Rectangle getRelRectangle() const SAL_OVERRIDE;
 };
 
 /** Bezier shape object that supports to, from, control1 and control2
diff --git a/sal/inc/sal/types.h b/sal/inc/sal/types.h
index 8ada6d7..117de03 100644
--- a/sal/inc/sal/types.h
+++ b/sal/inc/sal/types.h
@@ -416,6 +416,19 @@
 #define SAL_DELETED_FUNCTION
 #endif
 
+/** C++11 "override" feature.
+
+    With HAVE_CXX11_OVERRIDE, force the method to override a existing method in
+    parent, error out if the method with the correct signature does not exist.
+
+    @since LibreOffice 4.1
+*/
+#if defined HAVE_CXX11_OVERRIDE
+#define SAL_OVERRIDE override
+#else
+#define SAL_OVERRIDE
+#endif
+
 #endif /* __cplusplus */
 
 #ifdef __cplusplus

-- 
To view, visit https://gerrit.libreoffice.org/1928
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3675b627d5e9ca19b2c4fb69fef12d0dabf94a43
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Miklos Vajna <vmiklos@suse.cz>

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.