Add wxOVERRIDE and use it in common and wxOSX code.

Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-03-20 13:26:28 +00:00
parent 34e4f66d6a
commit 33ad33d447
140 changed files with 865 additions and 718 deletions

View File

@@ -269,6 +269,28 @@ typedef short int WXTYPE;
#define wxEXPLICIT
#endif /* HAVE_EXPLICIT/!HAVE_EXPLICIT */
/* check for override keyword support */
#ifndef HAVE_OVERRIDE
#if defined(__VISUALC__) && (__VISUALC__ >= 1400)
/*
VC++ 8.0+ support C++/CLI's override, sealed, and abstract in native
code as a nonstandard extension, and C++/CLI's override fortunately
matches C++11's
*/
#define HAVE_OVERRIDE
#elif wxCHECK_GCC_VERSION(4, 7) && __cplusplus >= 201103L
#define HAVE_OVERRIDE
#elif WX_HAS_CLANG_FEATURE(cxx_override_control)
#define HAVE_OVERRIDE
#endif
#endif /* !HAVE_OVERRIDE */
#ifdef HAVE_OVERRIDE
#define wxOVERRIDE override
#else /* !HAVE_OVERRIDE */
#define wxOVERRIDE
#endif /* HAVE_OVERRIDE/!HAVE_EXPLICIT */
/* these macros are obsolete, use the standard C++ casts directly now */
#define wx_static_cast(t, x) static_cast<t>(x)
#define wx_const_cast(t, x) const_cast<t>(x)