5#pragma qt_sync_skip_header_check
6#pragma qt_sync_stop_processing
9#ifndef QSHAREDDATA_IMPL_H
10#define QSHAREDDATA_IMPL_H
12#include <QtCore/qcompare.h>
13#include <QtCore/qglobal.h>
14#include <QtCore/qshareddata.h>
23 Qt::totally_ordered_wrapper<T *> d;
68 if (d && !d->ref.deref())
78 }
else if (d->ref.loadRelaxed() != 1) {
85 void reset(T *t =
nullptr)
noexcept
87 if (d && !d->ref.deref())
94 constexpr T *
take()
noexcept
96 return std::exchange(d,
nullptr).get();
101 return d && d->ref.loadRelaxed() != 1;
106 qt_ptr_swap(d, other.d);
112 constexpr const T &
operator*()
const {
return *(d.get()); }
113 constexpr const T *
operator->()
const {
return d.get(); }
115 constexpr T *
data()
noexcept {
return d.get(); }
116 constexpr const T *
data()
const noexcept {
return d.get(); }
118 constexpr explicit operator bool()
const noexcept {
return d.get(); }
123 {
return lhs.d == rhs.d; }
127 {
return Qt::compareThreeWay(lhs.d, rhs.d); }
130 constexpr friend bool
132 {
return lhs.
d ==
nullptr; }
QExplicitlySharedDataPointerV2(const QExplicitlySharedDataPointerV2 &other) noexcept
void reset(T *t=nullptr) noexcept
constexpr void swap(QExplicitlySharedDataPointerV2 &other) noexcept
constexpr T * operator->()
constexpr const T * data() const noexcept
QExplicitlySharedDataPointerV2 & operator=(const QExplicitlySharedDataPointerV2 &other) noexcept
constexpr QExplicitlySharedDataPointerV2() noexcept
QExplicitlySharedDataPointerV2(T *t, QAdoptSharedDataTag) noexcept
QExplicitlySharedDataPointerV2 & operator=(QExplicitlySharedDataPointerV2 &&other) noexcept
constexpr friend Qt::strong_ordering compareThreeWay(const QExplicitlySharedDataPointerV2 &lhs, const QExplicitlySharedDataPointerV2 &rhs) noexcept
constexpr const T & operator*() const
constexpr T & operator*()
constexpr const T * operator->() const
QExplicitlySharedDataPointerV2(T *t) noexcept
constexpr T * data() noexcept
constexpr T * take() noexcept
~QExplicitlySharedDataPointerV2()
constexpr operator bool() const noexcept
QExplicitlySharedDataPointerV2(QExplicitlySharedDataPointerV2 &&other) noexcept
constexpr friend bool comparesEqual(const QExplicitlySharedDataPointerV2 &lhs, const QExplicitlySharedDataPointerV2 &rhs) noexcept
bool isShared() const noexcept
constexpr void swap(QExplicitlySharedDataPointerV2< T > &lhs, QExplicitlySharedDataPointerV2< T > &rhs) noexcept