Fix compilation with ICC on Windows

Unlike MSVC, ICC *does* support constexpr, but on Windows it will not
define __GNUC__, so we ended up in the multi-line alternative. That is
not permitted in C++11, only in C++14.

qalgorithms.h(659): error: statement may not appear in a constexpr function

Change-Id: I7de033f80b0e4431b7f1ffff13fc96245ee9a846
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
bb10
Thiago Macieira 2015-08-21 13:58:39 -07:00
parent 1977855f31
commit ad080fa311
1 changed files with 5 additions and 5 deletions

View File

@ -649,7 +649,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCountTrailingZeroBits(unsigned long v) Q_D
return qCountTrailingZeroBits(QIntegerForSizeof<long>::Unsigned(v));
}
Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint32 v) Q_DECL_NOTHROW
Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint32 v) Q_DECL_NOTHROW
{
#if defined(Q_CC_GNU)
return v ? __builtin_clz(v) : 32U;
@ -664,7 +664,7 @@ Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint32 v) Q_DECL_NOTHROW
#endif
}
Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
{
#if defined(Q_CC_GNU)
return v ? __builtin_clz(v)-24U : 8U;
@ -676,7 +676,7 @@ Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
#endif
}
Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
{
#if defined(Q_CC_GNU)
return v ? __builtin_clz(v)-16U : 16U;
@ -689,7 +689,7 @@ Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
#endif
}
Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
{
#if defined(Q_CC_GNU)
return v ? __builtin_clzll(v) : 64U;
@ -704,7 +704,7 @@ Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
#endif
}
Q_DECL_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW
Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW
{
return qCountLeadingZeroBits(QIntegerForSizeof<long>::Unsigned(v));
}