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
|
||||
# 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
|
||||
@ -724,7 +728,7 @@
|
||||
#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
|
||||
|
Loading…
Reference in New Issue
Block a user