This allows code using methods marked Q_DECL_NOEXCEPT to benefit from
optimisations before MSVC supports the C++11 keyword. Even MSVC 2012
doesn't have it yet.
Using throw() in other compilers is not a good idea because they might
actually be implementing the C++ standard -- which is broken.
Change-Id: Id07ab4fe40a641583d5285d5abb536998bc419ba
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
# define Q_COMPILER_VARIADIC_MACROS
# endif
+// make sure that these aren't defined when Q_COMPILER_NOEXCEPT is defined
+# define Q_DECL_NOEXCEPT throw()
+# define Q_DECL_NOEXCEPT_EXPR(x)
+
#if defined(Q_CC_MSVC) && _MSC_VER >= 1600
# define Q_COMPILER_RVALUE_REFS
# define Q_COMPILER_AUTO_TYPE
#ifdef Q_COMPILER_NOEXCEPT
# define Q_DECL_NOEXCEPT noexcept
# define Q_DECL_NOEXCEPT_EXPR(x) noexcept(x)
-#else
+#elif !defined(Q_DECL_NOEXCEPT)
# define Q_DECL_NOEXCEPT
# define Q_DECL_NOEXCEPT_EXPR(x)
#endif