From 939338c273539b51e622e61e5f375571eff3619e Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 21 Aug 2012 10:05:41 +0200 Subject: [PATCH] QVariant: prevent QVariant(QMetaType::Type) from compiling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported-by: Stephen Chu Change-Id: I298973174ff10f4462f04f3358c974c04dfd3383 Reviewed-by: Jędrzej Nowacki Reviewed-by: Stephen Chu --- src/corelib/kernel/qvariant.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index bde67ed5ac..07043b1977 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -454,6 +454,13 @@ public: private: // force compile error, prevent QVariant(bool) to be called inline QVariant(void *) Q_DECL_EQ_DELETE; + // QVariant::Type is marked as \obsolete, but we don't want to + // provide a constructor from its intended replacement, + // QMetaType::Type, instead, because the idea behind these + // constructors is flawed in the first place. But we also don't + // want QVariant(QMetaType::String) to compile and falsely be an + // int variant, so delete this constructor: + QVariant(QMetaType::Type) Q_DECL_EQ_DELETE; #ifdef QT_NO_CAST_FROM_ASCII // force compile error when implicit conversion is not wanted inline QVariant(const char *) Q_DECL_EQ_DELETE;