MSVC's throw() behaviour matches the C++11 noexcept, so use it
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>
This commit is contained in:
parent
38dc1f7597
commit
1adca80707
@ -110,6 +110,10 @@
|
|||||||
# define Q_COMPILER_VARIADIC_MACROS
|
# define Q_COMPILER_VARIADIC_MACROS
|
||||||
# endif
|
# 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
|
#if defined(Q_CC_MSVC) && _MSC_VER >= 1600
|
||||||
# define Q_COMPILER_RVALUE_REFS
|
# define Q_COMPILER_RVALUE_REFS
|
||||||
# define Q_COMPILER_AUTO_TYPE
|
# define Q_COMPILER_AUTO_TYPE
|
||||||
@ -724,7 +728,7 @@
|
|||||||
#ifdef Q_COMPILER_NOEXCEPT
|
#ifdef Q_COMPILER_NOEXCEPT
|
||||||
# define Q_DECL_NOEXCEPT noexcept
|
# define Q_DECL_NOEXCEPT noexcept
|
||||||
# define Q_DECL_NOEXCEPT_EXPR(x) noexcept(x)
|
# define Q_DECL_NOEXCEPT_EXPR(x) noexcept(x)
|
||||||
#else
|
#elif !defined(Q_DECL_NOEXCEPT)
|
||||||
# define Q_DECL_NOEXCEPT
|
# define Q_DECL_NOEXCEPT
|
||||||
# define Q_DECL_NOEXCEPT_EXPR(x)
|
# define Q_DECL_NOEXCEPT_EXPR(x)
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user