From 351c738fc4586bf354c9363fb78e190bdfca4617 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 12 Sep 2019 11:07:31 +0200 Subject: QPointer: some simplifications - don't write explicit meta functions, use std::conditional - = default the default ctor The class is already not trivially-copyable, so making the default ctor trivial doesn't change the ABI. Change-Id: I8e35bbbb35973c9ff8fc48dfbfc10061de4bfd30 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qpointer.h | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h index 7052bcf0d4..5efdb0b395 100644 --- a/src/corelib/kernel/qpointer.h +++ b/src/corelib/kernel/qpointer.h @@ -54,20 +54,11 @@ class QPointer { Q_STATIC_ASSERT_X(!std::is_pointer::value, "QPointer's template type must not be a pointer type"); - template - struct TypeSelector - { - typedef QObject Type; - }; - template - struct TypeSelector - { - typedef const QObject Type; - }; - typedef typename TypeSelector::Type QObjectType; + using QObjectType = + typename std::conditional::value, const QObject, QObject>::type; QWeakPointer wp; public: - inline QPointer() { } + QPointer() = default; inline QPointer(T *p) : wp(p, true) { } // compiler-generated copy/move ctor/assignment operators are fine! // compiler-generated dtor is fine! -- cgit v1.2.3