Q(Basic)Atomic: remove QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
The define has always been set, so we can simplify all the code that checked for it. Change-Id: I9133ba95dbd6e1da465ade1d1306310bd3fb9a45 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
parent
c5b816393d
commit
77646f668d
@ -14,29 +14,16 @@ QT_BEGIN_NAMESPACE
|
|||||||
QT_WARNING_PUSH
|
QT_WARNING_PUSH
|
||||||
QT_WARNING_DISABLE_GCC("-Wextra")
|
QT_WARNING_DISABLE_GCC("-Wextra")
|
||||||
|
|
||||||
#ifdef Q_CLANG_QDOC
|
|
||||||
# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// High-level atomic integer operations
|
// High-level atomic integer operations
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class QAtomicInteger : public QBasicAtomicInteger<T>
|
class QAtomicInteger : public QBasicAtomicInteger<T>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// Non-atomic API
|
// Non-atomic API
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger<T>(value) {}
|
constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger<T>(value) {}
|
||||||
#else
|
|
||||||
inline QAtomicInteger(T value = 0) noexcept
|
|
||||||
{
|
|
||||||
this->_q_value = value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
inline QAtomicInteger(const QAtomicInteger &other) noexcept
|
inline QAtomicInteger(const QAtomicInteger &other) noexcept
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
: QBasicAtomicInteger<T>()
|
: QBasicAtomicInteger<T>()
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
this->storeRelease(other.loadAcquire());
|
this->storeRelease(other.loadAcquire());
|
||||||
}
|
}
|
||||||
@ -129,10 +116,7 @@ public:
|
|||||||
// Non-atomic API
|
// Non-atomic API
|
||||||
// We could use QT_COMPILER_INHERITING_CONSTRUCTORS, but we need only one;
|
// We could use QT_COMPILER_INHERITING_CONSTRUCTORS, but we need only one;
|
||||||
// the implicit definition for all the others is fine.
|
// the implicit definition for all the others is fine.
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
constexpr QAtomicInt(int value = 0) noexcept : QAtomicInteger<int>(value) {}
|
||||||
constexpr
|
|
||||||
#endif
|
|
||||||
QAtomicInt(int value = 0) noexcept : QAtomicInteger<int>(value) {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// High-level atomic pointer operations
|
// High-level atomic pointer operations
|
||||||
@ -140,18 +124,10 @@ template <typename T>
|
|||||||
class QAtomicPointer : public QBasicAtomicPointer<T>
|
class QAtomicPointer : public QBasicAtomicPointer<T>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
constexpr QAtomicPointer(T *value = nullptr) noexcept : QBasicAtomicPointer<T>(value) {}
|
constexpr QAtomicPointer(T *value = nullptr) noexcept : QBasicAtomicPointer<T>(value) {}
|
||||||
#else
|
|
||||||
inline QAtomicPointer(T *value = nullptr) noexcept
|
|
||||||
{
|
|
||||||
this->storeRelaxed(value);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
inline QAtomicPointer(const QAtomicPointer<T> &other) noexcept
|
inline QAtomicPointer(const QAtomicPointer<T> &other) noexcept
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
: QBasicAtomicPointer<T>()
|
: QBasicAtomicPointer<T>()
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
this->storeRelease(other.loadAcquire());
|
this->storeRelease(other.loadAcquire());
|
||||||
}
|
}
|
||||||
@ -196,10 +172,6 @@ public:
|
|||||||
|
|
||||||
QT_WARNING_POP
|
QT_WARNING_POP
|
||||||
|
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
This is a helper for the assignment operators of implicitly
|
This is a helper for the assignment operators of implicitly
|
||||||
shared classes. Your assignment operator should look like this:
|
shared classes. Your assignment operator should look like this:
|
||||||
|
@ -23,8 +23,6 @@ QT_END_NAMESPACE
|
|||||||
|
|
||||||
// New atomics
|
// New atomics
|
||||||
|
|
||||||
#define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class QBasicAtomicInteger
|
class QBasicAtomicInteger
|
||||||
{
|
{
|
||||||
@ -155,13 +153,11 @@ public:
|
|||||||
{ return fetchAndXorOrdered(v) ^ v; }
|
{ return fetchAndXorOrdered(v) ^ v; }
|
||||||
|
|
||||||
|
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
QBasicAtomicInteger() = default;
|
QBasicAtomicInteger() = default;
|
||||||
constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {}
|
constexpr QBasicAtomicInteger(T value) noexcept : _q_value(value) {}
|
||||||
QBasicAtomicInteger(const QBasicAtomicInteger &) = delete;
|
QBasicAtomicInteger(const QBasicAtomicInteger &) = delete;
|
||||||
QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete;
|
QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete;
|
||||||
QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete;
|
QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) volatile = delete;
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
typedef QBasicAtomicInteger<int> QBasicAtomicInt;
|
typedef QBasicAtomicInteger<int> QBasicAtomicInt;
|
||||||
|
|
||||||
@ -252,13 +248,11 @@ public:
|
|||||||
Type operator-=(qptrdiff valueToSub) noexcept
|
Type operator-=(qptrdiff valueToSub) noexcept
|
||||||
{ return fetchAndSubOrdered(valueToSub) - valueToSub; }
|
{ return fetchAndSubOrdered(valueToSub) - valueToSub; }
|
||||||
|
|
||||||
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
|
||||||
QBasicAtomicPointer() = default;
|
QBasicAtomicPointer() = default;
|
||||||
constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {}
|
constexpr QBasicAtomicPointer(Type value) noexcept : _q_value(value) {}
|
||||||
QBasicAtomicPointer(const QBasicAtomicPointer &) = delete;
|
QBasicAtomicPointer(const QBasicAtomicPointer &) = delete;
|
||||||
QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete;
|
QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) = delete;
|
||||||
QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete;
|
QBasicAtomicPointer &operator=(const QBasicAtomicPointer &) volatile = delete;
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef Q_BASIC_ATOMIC_INITIALIZER
|
#ifndef Q_BASIC_ATOMIC_INITIALIZER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user