diff options
Diffstat (limited to 'src/corelib/kernel/qvariant_p.h')
-rw-r--r-- | src/corelib/kernel/qvariant_p.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/corelib/kernel/qvariant_p.h b/src/corelib/kernel/qvariant_p.h index 487949431c..b22b7c231e 100644 --- a/src/corelib/kernel/qvariant_p.h +++ b/src/corelib/kernel/qvariant_p.h @@ -187,6 +187,16 @@ public: } }; +template <typename T> +struct PrimitiveIsNull<T*> +{ +public: + static bool isNull(const QVariant::Private *d) + { + return d->is_null || d->data.ptr == nullptr; + } +}; + template <> struct PrimitiveIsNull<std::nullptr_t> { @@ -268,11 +278,11 @@ class QVariantIsNull Q_STATIC_ASSERT(!HasIsNullMethod<SelfTest2>::Value); struct SelfTest3 : public SelfTest1 {}; Q_STATIC_ASSERT(HasIsNullMethod<SelfTest3>::Value); - struct SelfTestFinal1 Q_DECL_FINAL { bool isNull() const; }; + struct SelfTestFinal1 final { bool isNull() const; }; Q_STATIC_ASSERT(HasIsNullMethod<SelfTestFinal1>::Value); - struct SelfTestFinal2 Q_DECL_FINAL {}; + struct SelfTestFinal2 final {}; Q_STATIC_ASSERT(!HasIsNullMethod<SelfTestFinal2>::Value); - struct SelfTestFinal3 Q_DECL_FINAL : public SelfTest1 {}; + struct SelfTestFinal3 final : public SelfTest1 {}; Q_STATIC_ASSERT(HasIsNullMethod<SelfTestFinal3>::Value); template<typename T, bool HasIsNull = HasIsNullMethod<T>::Value> |