• Qt5+MSVC2015 32位编译器报错: qalgorithms.h: error C3615 不会生成常数表达式


    这个是Qt的Bug,解决方法是按下面说明修改qalgorithms.h文件

    index 1a03bfa..b658d8a 100644 (file)
    --- a/src/corelib/tools/qalgorithms.h
    +++ b/src/corelib/tools/qalgorithms.h
    @@ -590,6 +590,7 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NO
     }
     #elif defined(Q_CC_MSVC) && !defined(Q_OS_WINCE) && !defined(Q_PROCESSOR_ARM)
     #define QT_POPCOUNT_CONSTEXPR
    +#define QT_POPCOUNT_RELAXED_CONSTEXPR
     #define QT_HAS_BUILTIN_CTZ
     Q_ALWAYS_INLINE unsigned long qt_builtin_ctz(quint32 val)
     {
    @@ -676,6 +677,7 @@ Q_ALWAYS_INLINE uint qt_builtin_popcountll(quint64 v) Q_DECL_NOTHROW
     
     #ifndef QT_POPCOUNT_CONSTEXPR
     #define QT_POPCOUNT_CONSTEXPR Q_DECL_CONSTEXPR
    +#define QT_POPCOUNT_RELAXED_CONSTEXPR Q_DECL_RELAXED_CONSTEXPR
     #endif
     
     } //namespace QAlgorithmsPrivate
    @@ -819,7 +821,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint32 v) Q_DECL_NOT
     #endif
     }
     
    -Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
    +QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW
     {
     #if defined(QT_HAS_BUILTIN_CLZ)
         return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U;
    @@ -831,7 +833,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTH
     #endif
     }
     
    -Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
    +QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW
     {
     #if defined(QT_HAS_BUILTIN_CLZS)
         return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U;
    @@ -844,7 +846,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOT
     #endif
     }
     
    -Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
    +QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW
     {
     #if defined(QT_HAS_BUILTIN_CLZLL)
         return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U;
    @@ -859,7 +861,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOT
     #endif
     }
     
    -Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW
    +QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW
     {
         return qCountLeadingZeroBits(QIntegerForSizeof<long>::Unsigned(v));
     }
    
  • 相关阅读:
    Android——用Activity和Service实现简单的音乐播放器
    Android——indexof()
    Android——简易计算器(转)
    Android——计算器第一次完善
    Android——Service
    Android——ViewPager滑动背景渐变(自定义view,ViewPager)
    Android ——利用OnDraw实现自定义View(转)
    Android——自定义视图(一)转
    OpenERP在哪储存附件?
    销售预付款达到指定比例方可发货
  • 原文地址:https://www.cnblogs.com/tjhd/p/13877333.html
Copyright © 2020-2023  润新知