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));
     }
    
  • 相关阅读:
    react-redux源码解析
    redux的源码解析
    react + dva + ant架构后台管理系统(一)
    fetch 代替 XMLHttpRequest (json-server 模拟后台接口)
    Es6 Generator函数
    java 的数据类型
    vue为app做h5页面,如何做到同域名对应不同版本的h5代码
    vue-devtools 的安装和使用
    jq源码解析之绑在$,jQuery上面的方法
    jquery的extend方法(源码解析)
  • 原文地址:https://www.cnblogs.com/tjhd/p/13877333.html
Copyright © 2011-2022 走看看