summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qsharedpointer.h
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2025-01-16 16:31:12 +0100
committerMarc Mutz <marc.mutz@qt.io>2025-01-30 14:33:19 +0000
commit8511149d886e5aef2a065efffc336c7b25e6540e (patch)
tree1b65b9e46ca0f063fe1d8bdb01fc0829569603a0 /src/corelib/tools/qsharedpointer.h
parent2ef55de1029281d997a99c67764c239daadf6e08 (diff)
QSharedPointer: document rvalue overloads of various cast methods
The patch provides two documentation snippets: for an arbitrary arg and for \c {*this}. That is because qdoc does not support passing a command (e.g. \c) as a part of the snippet's parameter. Amends e95fb04202b3f786037c10942fd4e912644fd7d2. Found in Qt 6.9 API review. Pick-to: 6.9 Change-Id: I4eed234d18e39f2fc0c30a647a423f3240e31d40 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/tools/qsharedpointer.h')
-rw-r--r--src/corelib/tools/qsharedpointer.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h
index 116c9afa00c..0524ddca203 100644
--- a/src/corelib/tools/qsharedpointer.h
+++ b/src/corelib/tools/qsharedpointer.h
@@ -65,10 +65,14 @@ public:
void reset(T *t, Deleter deleter);
// casts:
- template <class X> QSharedPointer<X> staticCast() const;
- template <class X> QSharedPointer<X> dynamicCast() const;
- template <class X> QSharedPointer<X> constCast() const;
- template <class X> QSharedPointer<X> objectCast() const;
+ template <class X> QSharedPointer<X> staticCast() const &;
+ template <class X> QSharedPointer<X> staticCast() &&;
+ template <class X> QSharedPointer<X> dynamicCast() const &;
+ template <class X> QSharedPointer<X> dynamicCast() &&;
+ template <class X> QSharedPointer<X> constCast() const &;
+ template <class X> QSharedPointer<X> constCast() &&;
+ template <class X> QSharedPointer<X> objectCast() const &;
+ template <class X> QSharedPointer<X> objectCast() &&;
template <typename... Args>
static inline QSharedPointer<T> create(Args &&... args);
@@ -164,12 +168,16 @@ template<class T> bool operator==(std::nullptr_t, const QWeakPointer<T> &rhs);
template<class T> bool operator!=(std::nullptr_t, const QWeakPointer<T> &rhs);
template <class X, class T> QSharedPointer<X> qSharedPointerCast(const QSharedPointer<T> &other);
+template <class X, class T> QSharedPointer<X> qSharedPointerCast(QSharedPointer<T> &&other);
template <class X, class T> QSharedPointer<X> qSharedPointerCast(const QWeakPointer<T> &other);
template <class X, class T> QSharedPointer<X> qSharedPointerDynamicCast(const QSharedPointer<T> &src);
+template <class X, class T> QSharedPointer<X> qSharedPointerDynamicCast(QSharedPointer<T> &&src);
template <class X, class T> QSharedPointer<X> qSharedPointerDynamicCast(const QWeakPointer<T> &src);
template <class X, class T> QSharedPointer<X> qSharedPointerConstCast(const QSharedPointer<T> &src);
+template <class X, class T> QSharedPointer<X> qSharedPointerConstCast(QSharedPointer<T> &&src);
template <class X, class T> QSharedPointer<X> qSharedPointerConstCast(const QWeakPointer<T> &src);
template <class X, class T> QSharedPointer<X> qSharedPointerObjectCast(const QSharedPointer<T> &src);
+template <class X, class T> QSharedPointer<X> qSharedPointerObjectCast(QSharedPointer<T> &&src);
template <class X, class T> QSharedPointer<X> qSharedPointerObjectCast(const QWeakPointer<T> &src);
template <typename X, class T> std::shared_ptr<X> qobject_pointer_cast(const std::shared_ptr<T> &src);
template <typename X, class T> std::shared_ptr<X> qobject_pointer_cast(std::shared_ptr<T> &&src);