37template <QObjectDerived T>
class QObjectUniquePtr
40 QObjectUniquePtr (T * ptr =
nullptr) : ptr_ (ptr) { }
42 ~QObjectUniquePtr () { reset (); }
44 Z_DISABLE_COPY (QObjectUniquePtr)
47 QObjectUniquePtr (QObjectUniquePtr &&other) noexcept : ptr_ (other.release ())
50 QObjectUniquePtr &operator= (QObjectUniquePtr &&other)
noexcept
54 reset (other.release ());
60 QObjectUniquePtr &operator= (QObjectUniquePtr<U> &&other)
noexcept
61 requires std::derived_from<U, T>
65 reset (other.release ());
70 void reset (T * ptr =
nullptr)
89 T * get ()
const {
return ptr_; }
90 T * operator->()
const {
return ptr_; }
91 T &operator* ()
const {
return *ptr_; }
92 explicit operator bool ()
const {
return !ptr_.isNull (); }
95 explicit operator QPointer<T> ()
const {
return ptr_; }