diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index fe99ad6bdd..ed4978699f 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -563,6 +563,10 @@ public: { if constexpr (std::is_null_pointer_v) return QVariant(QMetaType::fromType()); + else if constexpr (std::is_same_v) + return value; + else if constexpr (std::is_same_v) + return QVariant(); return QVariant(QMetaType::fromType(), std::addressof(value)); } @@ -693,18 +697,6 @@ public: inline const DataPtr &data_ptr() const { return d; } }; -template<> -inline QVariant QVariant::fromValue(const QVariant &value) -{ - return value; -} - -template<> -inline QVariant QVariant::fromValue(const std::monostate &) noexcept -{ - return QVariant(); -} - inline bool QVariant::isValid() const { return d.type().isValid();