diff options
Diffstat (limited to 'src/corelib/kernel/qdeadlinetimer.h')
-rw-r--r-- | src/corelib/kernel/qdeadlinetimer.h | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/corelib/kernel/qdeadlinetimer.h b/src/corelib/kernel/qdeadlinetimer.h index b872422add..515cdb5387 100644 --- a/src/corelib/kernel/qdeadlinetimer.h +++ b/src/corelib/kernel/qdeadlinetimer.h @@ -7,7 +7,6 @@ #include <QtCore/qelapsedtimer.h> #include <QtCore/qmetatype.h> #include <QtCore/qnamespace.h> -#include <QtCore/qpair.h> #ifdef max // un-pollute the namespace. We need std::numeric_limits::max() and std::chrono::duration::max() @@ -26,7 +25,8 @@ public: enum class ForeverConstant { Forever }; static constexpr ForeverConstant Forever = ForeverConstant::Forever; - constexpr QDeadlineTimer(Qt::TimerType type_ = Qt::CoarseTimer) noexcept + constexpr QDeadlineTimer() noexcept = default; + constexpr explicit QDeadlineTimer(Qt::TimerType type_) noexcept : type(type_) {} constexpr QDeadlineTimer(ForeverConstant, Qt::TimerType type_ = Qt::CoarseTimer) noexcept : t1((std::numeric_limits<qint64>::max)()), type(type_) {} @@ -58,19 +58,6 @@ public: static QDeadlineTimer addNSecs(QDeadlineTimer dt, qint64 nsecs) noexcept Q_DECL_PURE_FUNCTION; static QDeadlineTimer current(Qt::TimerType timerType = Qt::CoarseTimer) noexcept; - friend bool operator==(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return d1.t1 == d2.t1; } - friend bool operator!=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return !(d1 == d2); } - friend bool operator<(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return d1.t1 < d2.t1; } - friend bool operator<=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return d1 == d2 || d1 < d2; } - friend bool operator>(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return d2 < d1; } - friend bool operator>=(QDeadlineTimer d1, QDeadlineTimer d2) noexcept - { return !(d1 < d2); } - friend Q_CORE_EXPORT QDeadlineTimer operator+(QDeadlineTimer dt, qint64 msecs); friend QDeadlineTimer operator+(qint64 msecs, QDeadlineTimer dt) { return dt + msecs; } @@ -138,11 +125,23 @@ public: { return dt = dt + value; } private: + friend bool comparesEqual(const QDeadlineTimer &lhs, + const QDeadlineTimer &rhs) noexcept + { + return lhs.t1 == rhs.t1; + } + friend Qt::strong_ordering compareThreeWay(const QDeadlineTimer &lhs, + const QDeadlineTimer &rhs) noexcept + { + return Qt::compareThreeWay(lhs.t1, rhs.t1); + } + Q_DECLARE_STRONGLY_ORDERED(QDeadlineTimer) + qint64 t1 = 0; #if QT_VERSION < QT_VERSION_CHECK(7, 0, 0) unsigned t2 = 0; #endif - unsigned type; + unsigned type = Qt::CoarseTimer; qint64 rawRemainingTimeNSecs() const noexcept; }; |