diff --git a/src/corelib/time/qtimezoneprivate.cpp b/src/corelib/time/qtimezoneprivate.cpp index a5fc221b202..bf00c1c544d 100644 --- a/src/corelib/time/qtimezoneprivate.cpp +++ b/src/corelib/time/qtimezoneprivate.cpp @@ -130,11 +130,6 @@ QTimeZonePrivate::~QTimeZonePrivate() { } -QTimeZonePrivate *QTimeZonePrivate::clone() const -{ - return new QTimeZonePrivate(*this); -} - bool QTimeZonePrivate::operator==(const QTimeZonePrivate &other) const { // TODO Too simple, but need to solve problem of comparing different derived classes diff --git a/src/corelib/time/qtimezoneprivate_chrono.cpp b/src/corelib/time/qtimezoneprivate_chrono.cpp index 94e1791b799..e317ab522ef 100644 --- a/src/corelib/time/qtimezoneprivate_chrono.cpp +++ b/src/corelib/time/qtimezoneprivate_chrono.cpp @@ -59,6 +59,11 @@ QChronoTimeZonePrivate::QChronoTimeZonePrivate(QByteArrayView id) m_id.assign(m_timeZone->name()); } +QChronoTimeZonePrivate *QChronoTimeZonePrivate::clone() const +{ + return new QChronoTimeZonePrivate(*this); +} + QChronoTimeZonePrivate::~QChronoTimeZonePrivate() = default; diff --git a/src/corelib/time/qtimezoneprivate_p.h b/src/corelib/time/qtimezoneprivate_p.h index b3a86e9cdbd..5fb6ccf5504 100644 --- a/src/corelib/time/qtimezoneprivate_p.h +++ b/src/corelib/time/qtimezoneprivate_p.h @@ -76,7 +76,7 @@ public: QTimeZonePrivate(const QTimeZonePrivate &other); virtual ~QTimeZonePrivate(); - virtual QTimeZonePrivate *clone() const; + virtual QTimeZonePrivate *clone() const = 0; bool operator==(const QTimeZonePrivate &other) const; bool operator!=(const QTimeZonePrivate &other) const; @@ -236,10 +236,12 @@ private: #if QT_CONFIG(timezone_tzdb) class QChronoTimeZonePrivate final : public QTimeZonePrivate { + QChronoTimeZonePrivate(const QChronoTimeZonePrivate &) = default; public: QChronoTimeZonePrivate(); QChronoTimeZonePrivate(QByteArrayView id); ~QChronoTimeZonePrivate() override; + QChronoTimeZonePrivate *clone() const override; QByteArray systemTimeZoneId() const override; @@ -259,7 +261,6 @@ public: private: const std::chrono::time_zone *const m_timeZone; - Q_DISABLE_COPY_MOVE(QChronoTimeZonePrivate) }; #elif defined(Q_OS_DARWIN) class Q_AUTOTEST_EXPORT QMacTimeZonePrivate final : public QTimeZonePrivate