summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qvariant_p.h
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-06-11 11:35:19 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-06-19 19:38:23 +0200
commit3e1d03b1eaf6a5e842bed4ae4f9bb8cca05e5b31 (patch)
tree74dd3478dce3bc96121238300fc0bbc6ef97fc3e /src/corelib/kernel/qvariant_p.h
parent5b686e208ffc68f9f660d36c468280d50a40e3ad (diff)
Port Q_STATIC_ASSERT(_X) to static_assert
There is no reason for keep using our macro now that we have C++17. The macro itself is left in for the moment being, as well as its detection logic, because it's needed for C code (not everything supports C11 yet). A few more cleanups will arrive in the next few patches. Note that this is a mere search/replace; some places were using double braces to work around the presence of commas in a macro, no attempt has been done to fix those. tst_qglobal had just some minor changes to keep testing the macro. Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/kernel/qvariant_p.h')
-rw-r--r--src/corelib/kernel/qvariant_p.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/corelib/kernel/qvariant_p.h b/src/corelib/kernel/qvariant_p.h
index aa89d42092..8739cb5173 100644
--- a/src/corelib/kernel/qvariant_p.h
+++ b/src/corelib/kernel/qvariant_p.h
@@ -68,9 +68,9 @@ struct QVariantIntegrator
&& ((QTypeInfoQuery<T>::isRelocatable) || std::is_enum<T>::value);
typedef std::integral_constant<bool, CanUseInternalSpace> CanUseInternalSpace_t;
};
-Q_STATIC_ASSERT(QVariantIntegrator<double>::CanUseInternalSpace);
-Q_STATIC_ASSERT(QVariantIntegrator<long int>::CanUseInternalSpace);
-Q_STATIC_ASSERT(QVariantIntegrator<qulonglong>::CanUseInternalSpace);
+static_assert(QVariantIntegrator<double>::CanUseInternalSpace);
+static_assert(QVariantIntegrator<long int>::CanUseInternalSpace);
+static_assert(QVariantIntegrator<qulonglong>::CanUseInternalSpace);
#ifdef Q_CC_SUN // Sun CC picks the wrong overload, so introduce awful hack
@@ -267,7 +267,7 @@ class QVariantIsNull
class HasIsNullMethod {
struct Yes { char unused[1]; };
struct No { char unused[2]; };
- Q_STATIC_ASSERT(sizeof(Yes) != sizeof(No));
+ static_assert(sizeof(Yes) != sizeof(No));
template<class C> static decltype(static_cast<const C*>(nullptr)->isNull(), Yes()) test(int);
template<class C> static No test(...);
@@ -276,19 +276,19 @@ class QVariantIsNull
};
// TODO This part should go to autotests during HasIsNullMethod generalization.
- Q_STATIC_ASSERT(!HasIsNullMethod<bool>::Value);
+ static_assert(!HasIsNullMethod<bool>::Value);
struct SelfTest1 { bool isNull() const; };
- Q_STATIC_ASSERT(HasIsNullMethod<SelfTest1>::Value);
+ static_assert(HasIsNullMethod<SelfTest1>::Value);
struct SelfTest2 {};
- Q_STATIC_ASSERT(!HasIsNullMethod<SelfTest2>::Value);
+ static_assert(!HasIsNullMethod<SelfTest2>::Value);
struct SelfTest3 : public SelfTest1 {};
- Q_STATIC_ASSERT(HasIsNullMethod<SelfTest3>::Value);
+ static_assert(HasIsNullMethod<SelfTest3>::Value);
struct SelfTestFinal1 final { bool isNull() const; };
- Q_STATIC_ASSERT(HasIsNullMethod<SelfTestFinal1>::Value);
+ static_assert(HasIsNullMethod<SelfTestFinal1>::Value);
struct SelfTestFinal2 final {};
- Q_STATIC_ASSERT(!HasIsNullMethod<SelfTestFinal2>::Value);
+ static_assert(!HasIsNullMethod<SelfTestFinal2>::Value);
struct SelfTestFinal3 final : public SelfTest1 {};
- Q_STATIC_ASSERT(HasIsNullMethod<SelfTestFinal3>::Value);
+ static_assert(HasIsNullMethod<SelfTestFinal3>::Value);
template<typename T, bool HasIsNull = HasIsNullMethod<T>::Value>
struct CallFilteredIsNull