diff src/if_ole.cpp @ 8641:0af716a4f5d2 v7.4.1610

commit https://github.com/vim/vim/commit/cc6cf9b9f9045a7d8b5923ea0c556e9a4c2567d3 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 19 20:51:35 2016 +0100 patch 7.4.1610 Problem: Compiler warnings for non-virtual destructor. Solution: Mark the classe final. (Ken Takata)
author Christian Brabandt <cb@256bit.org>
date Sat, 19 Mar 2016 21:00:04 +0100
parents d2a215e8d5b4
children 4aead6a9b7a9
line wrap: on
line diff
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -34,6 +34,12 @@ extern HWND s_hwnd;
 extern HWND vim_parent_hwnd;
 }
 
+#if (defined(_MSC_VER) && (_MSC_VER >= 1700)) || (__cplusplus >= 201103L)
+# define FINAL final
+#else
+# define FINAL
+#endif
+
 #if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 /* Work around old versions of basetsd.h which wrongly declares
  * UINT_PTR as unsigned long */
@@ -93,7 +99,7 @@ static CVim *app = 0;
  * ----------
  */
 
-class CVim : public IVim
+class CVim FINAL : public IVim
 {
 public:
     virtual ~CVim();
@@ -428,7 +434,7 @@ CVim::Eval(BSTR expr, BSTR *result)
  * ----------
  */
 
-class CVimCF : public IClassFactory
+class CVimCF FINAL : public IClassFactory
 {
 public:
     static CVimCF *Create();