Make qNextPowerOfTwo constexpr when building as C++14
Change-Id: Ic29dcbf1c4b70516ebb436b90962e3fdeb0e5608 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
0c310367a4
commit
3ae34b7ead
|
|
@ -244,16 +244,13 @@ Q_DECL_CONSTEXPR inline double qRadiansToDegrees(double radians)
|
|||
}
|
||||
|
||||
|
||||
#if defined(QT_HAS_BUILTIN_CLZ)
|
||||
inline quint32 qNextPowerOfTwo(quint32 v)
|
||||
Q_DECL_RELAXED_CONSTEXPR inline quint32 qNextPowerOfTwo(quint32 v)
|
||||
{
|
||||
#if defined(QT_HAS_BUILTIN_CLZ)
|
||||
if (v == 0)
|
||||
return 1;
|
||||
return 2U << (31 ^ QAlgorithmsPrivate::qt_builtin_clz(v));
|
||||
}
|
||||
#else
|
||||
inline quint32 qNextPowerOfTwo(quint32 v)
|
||||
{
|
||||
v |= v >> 1;
|
||||
v |= v >> 2;
|
||||
v |= v >> 4;
|
||||
|
|
@ -261,19 +258,16 @@ inline quint32 qNextPowerOfTwo(quint32 v)
|
|||
v |= v >> 16;
|
||||
++v;
|
||||
return v;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(QT_HAS_BUILTIN_CLZLL)
|
||||
inline quint64 qNextPowerOfTwo(quint64 v)
|
||||
Q_DECL_RELAXED_CONSTEXPR inline quint64 qNextPowerOfTwo(quint64 v)
|
||||
{
|
||||
#if defined(QT_HAS_BUILTIN_CLZLL)
|
||||
if (v == 0)
|
||||
return 1;
|
||||
return Q_UINT64_C(2) << (63 ^ QAlgorithmsPrivate::qt_builtin_clzll(v));
|
||||
}
|
||||
#else
|
||||
inline quint64 qNextPowerOfTwo(quint64 v)
|
||||
{
|
||||
v |= v >> 1;
|
||||
v |= v >> 2;
|
||||
v |= v >> 4;
|
||||
|
|
@ -282,15 +276,15 @@ inline quint64 qNextPowerOfTwo(quint64 v)
|
|||
v |= v >> 32;
|
||||
++v;
|
||||
return v;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
inline quint32 qNextPowerOfTwo(qint32 v)
|
||||
Q_DECL_RELAXED_CONSTEXPR inline quint32 qNextPowerOfTwo(qint32 v)
|
||||
{
|
||||
return qNextPowerOfTwo(quint32(v));
|
||||
}
|
||||
|
||||
inline quint64 qNextPowerOfTwo(qint64 v)
|
||||
Q_DECL_RELAXED_CONSTEXPR inline quint64 qNextPowerOfTwo(qint64 v)
|
||||
{
|
||||
return qNextPowerOfTwo(quint64(v));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue