diff options
Diffstat (limited to 'src/corelib/tools/qsharedpointer.h')
-rw-r--r-- | src/corelib/tools/qsharedpointer.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h index 2a60f3ca5e..116c9afa00 100644 --- a/src/corelib/tools/qsharedpointer.h +++ b/src/corelib/tools/qsharedpointer.h @@ -72,6 +72,19 @@ public: template <typename... Args> static inline QSharedPointer<T> create(Args &&... args); + + // owner-based comparisons + template <typename X> + bool owner_before(const QSharedPointer<X> &other) const noexcept; + template <typename X> + bool owner_before(const QWeakPointer<X> &other) const noexcept; + + template <typename X> + bool owner_equal(const QSharedPointer<X> &other) const noexcept; + template <typename X> + bool owner_equal(const QWeakPointer<X> &other) const noexcept; + + size_t owner_hash() const noexcept; }; template <class T> @@ -108,6 +121,19 @@ public: QSharedPointer<T> toStrongRef() const; QSharedPointer<T> lock() const; + + // owner-based comparisons + template <typename X> + bool owner_before(const QWeakPointer<X> &other) const noexcept; + template <typename X> + bool owner_before(const QSharedPointer<X> &other) const noexcept; + + template <typename X> + bool owner_equal(const QWeakPointer<X> &other) const noexcept; + template <typename X> + bool owner_equal(const QSharedPointer<X> &other) const noexcept; + + size_t owner_hash() const noexcept; }; template <class T> |