zoukankan      html  css  js  c++  java
  • 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));
     }
    
  • 相关阅读:
    基于Spring aop写的一个简单的耗时监控
    Intellij Idea 15 旗舰版 破解
    设计模式之工厂模式
    IDE神器intellij idea的基本使用
    [js] js判断浏览器(转)
    java知识大全积累篇
    一些技术大牛的博客集锦(转)
    添加鼠标右击菜单
    java 方法调用绑定
    Android系列--DOM、SAX、Pull解析XML
  • 原文地址:https://www.cnblogs.com/tjhd/p/13877333.html
Copyright © 2011-2022 走看看