diff options
Diffstat (limited to 'src/corelib/thread/qatomic.h')
| -rw-r--r-- | src/corelib/thread/qatomic.h | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/src/corelib/thread/qatomic.h b/src/corelib/thread/qatomic.h index 7fe5ac69b9d..26369d28f8f 100644 --- a/src/corelib/thread/qatomic.h +++ b/src/corelib/thread/qatomic.h @@ -17,20 +17,8 @@ template <typename T> class QAtomicInteger : public QBasicAtomicInteger<T> { public: - // Non-atomic API constexpr QAtomicInteger(T value = 0) noexcept : QBasicAtomicInteger<T>(value) {} - - inline QAtomicInteger(const QAtomicInteger &other) noexcept - : QBasicAtomicInteger<T>() - { - this->storeRelease(other.loadAcquire()); - } - - inline QAtomicInteger &operator=(const QAtomicInteger &other) noexcept - { - this->storeRelease(other.loadAcquire()); - return *this; - } + using QBasicAtomicInteger<T>::operator=; #ifdef Q_QDOC T loadRelaxed() const; @@ -108,13 +96,12 @@ public: #endif }; +// ### Qt 7: make QAtomicInt a typedef class QAtomicInt : public QAtomicInteger<int> { public: - // Non-atomic API - // We could use QT_COMPILER_INHERITING_CONSTRUCTORS, but we need only one; - // the implicit definition for all the others is fine. - constexpr QAtomicInt(int value = 0) noexcept : QAtomicInteger<int>(value) {} + using QAtomicInteger<int>::QAtomicInteger; + using QAtomicInteger<int>::operator=; }; // High-level atomic pointer operations @@ -123,18 +110,7 @@ class QAtomicPointer : public QBasicAtomicPointer<T> { public: constexpr QAtomicPointer(T *value = nullptr) noexcept : QBasicAtomicPointer<T>(value) {} - - inline QAtomicPointer(const QAtomicPointer<T> &other) noexcept - : QBasicAtomicPointer<T>() - { - this->storeRelease(other.loadAcquire()); - } - - inline QAtomicPointer<T> &operator=(const QAtomicPointer<T> &other) noexcept - { - this->storeRelease(other.loadAcquire()); - return *this; - } + using QBasicAtomicPointer<T>::operator=; #ifdef Q_QDOC T *loadAcquire() const; |
