Visual Studio警告C4334已分配但未在初始化时发出警告

时间:2015-07-22 08:50:21

标签: visual-c++ compiler-warnings

为什么我对此代码发出警告:

#include <cstdint>

int main()
{
    int i = 1;
    int64_t i64;
    i64 = 1 << i;
}
  

警告C4334:'&lt;&lt;' :32位移位的结果隐式转换为64位(意图是64位移位?)

但不是这个:

#include <cstdint>

int main()
{
    int i = 1;
    int64_t i64 = 1 << i;
}

? 在vs2013 / 2015上进行了测试。

2 个答案:

答案 0 :(得分:0)

我看到与vs2012的差异。我不认为它有充分的理由 - 希望在新版本的Visual C ++中都会发出警告。

答案 1 :(得分:0)

MSVS 2015 Upd.2:第二种情况(初始化时)将触发C4334警告。