Make QDateTime::Data::CanBeSmall a static constexpr bool

Using enum for named constants is old-fashioned.
Also test it using if constexpr, since we can.

Change-Id: I1fc4ed975e12403bc724b39f9335f3797acfafb8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Edward Welbourne 2023-01-11 20:28:27 +01:00
parent 80686be086
commit 9031574440
2 changed files with 6 additions and 8 deletions

View File

@ -2782,7 +2782,7 @@ static inline bool specCanBeSmall(Qt::TimeSpec spec)
static inline bool msecsCanBeSmall(qint64 msecs)
{
if (!QDateTimeData::CanBeSmall)
if constexpr (!QDateTimeData::CanBeSmall)
return false;
ShortData sd;
@ -3161,7 +3161,7 @@ inline bool QDateTime::Data::isShort() const
// even if CanBeSmall = false, we have short data for a default-constructed
// QDateTime object. But it's unlikely.
if (CanBeSmall)
if constexpr (CanBeSmall)
return Q_LIKELY(b);
return Q_UNLIKELY(b);
}

View File

@ -281,12 +281,10 @@ class Q_CORE_EXPORT QDateTime
};
union Data {
enum {
// To be of any use, we need at least 60 years around 1970, which
// is 1,893,456,000,000 ms. That requires 41 bits to store, plus
// the sign bit. With the status byte, the minimum size is 50 bits.
CanBeSmall = sizeof(ShortData) * 8 > 50
};
// To be of any use, we need at least 60 years around 1970, which
// is 1,893,456,000,000 ms. That requires 41 bits to store, plus
// the sign bit. With the status byte, the minimum size is 50 bits.
static constexpr bool CanBeSmall = sizeof(ShortData) * 8 > 50;
Data() noexcept;
Data(const QTimeZone &);