Remove compatibility support for sealed/override in C++/CLI

Those features have slightly different behavior as the C++11 keywords
that MSVC 2012 officially supports. When compiling in C++/CLI mode,
the "virtual" keyword must be present too.

We have not actually tested whether the official MSVC 2012 support for
C++/CLI still requires the virtual keyword. This is just going on the
assumption that C++/CLI follows the C++11 spec.

Task-number: QTBUG-34019
Change-Id: I148a443bfbff985033c555f5a9cfcd5be7f5f106
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Thiago Macieira 2013-10-14 14:05:57 -07:00 committed by The Qt Project
parent 74f2a1bd47
commit 704616605b

View File

@ -696,15 +696,20 @@
# if _MSC_VER >= 1400
/* C++11 features supported in VC8 = VC2005: */
# define Q_COMPILER_VARIADIC_MACROS
# ifndef __cplusplus_cli
/* 2005 supports the override and final contextual keywords, in
the same positions as the C++11 variants, but 'final' is
called 'sealed' instead:
http://msdn.microsoft.com/en-us/library/0w2w91tf%28v=vs.80%29.aspx
The behavior is slightly different in C++/CLI, which requires the
"virtual" keyword to be present too, so don't define for that.
So don't define Q_COMPILER_EXPLICIT_OVERRIDES (since it's not
the same as the C++11 version), but define the Q_DECL_* flags
accordingly: */
# define Q_DECL_OVERRIDE override
# define Q_DECL_FINAL sealed
# endif
# endif
# if _MSC_VER >= 1600
/* C++11 features supported in VC10 = VC2010: */