summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread/qatomic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/thread/qatomic.h')
-rw-r--r--src/corelib/thread/qatomic.h34
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;