diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2016-04-13 18:02:25 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2016-04-19 04:54:36 +0000 |
commit | 8026dc6f361b31e36344a3147aac308620287518 (patch) | |
tree | 4d23a17f1d3061b71a6c570b16c10d08fa32c5e2 /src/corelib/tools/qsharedpointer.h | |
parent | c22fcf03fba1ce361b297f42f2560ba985911f05 (diff) |
Add support for initializing QSharedPointer from nullptr
std::shared_ptr supports it. To resolve an ambiguous overload when a
literal 0 is passed as a parameter, the normal constructors needed to be
made a template, like std::shared_ptr.
Task-number: QTBUG-52569
Change-Id: Id75834dab9ed466e94c7ffff14451417892d2148
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/corelib/tools/qsharedpointer.h')
-rw-r--r-- | src/corelib/tools/qsharedpointer.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h index 6742a66939..3e05bf1ece 100644 --- a/src/corelib/tools/qsharedpointer.h +++ b/src/corelib/tools/qsharedpointer.h @@ -67,9 +67,10 @@ public: // constructors QSharedPointer(); - explicit QSharedPointer(T *ptr); - template<typename Deleter> - QSharedPointer(T *ptr, Deleter d); + template <typename X> explicit QSharedPointer(X *ptr); + template <typename X, typename Deleter> QSharedPointer(X *ptr, Deleter d); + QSharedPointer(std::nullptr_t); + template <typename Deleter> QSharedPointer(std::nullptr_t, Deleter d); QSharedPointer(const QSharedPointer<T> &other); QSharedPointer(const QWeakPointer<T> &other); |