使用Qt缺少转换警告

时间:2017-03-02 15:18:20

标签: c++ qt warnings

以下代码会生成警告:

warning C4244: 'initializing': conversion from 'int64_t' to 'int', possible loss of data

使用CL 19(带-W3)。

#include <inttypes.h>
#include <climits>

int main() {  
  int64_t a = INT_MAX;
  int b = a+1;
}

然而,一旦我包含任何与Qt相关的内容,似乎:

#include <QApplication>

警告消失了。但我希望这些警告显示给我自己的文件。这个Qt隐藏了自己的警告泄漏到我的来源吗?我可以避免吗?

1 个答案:

答案 0 :(得分:1)

qglobal.h禁用了一堆过于冗长的警告,几乎任何Qt标头都会(间接)包含这些警告。相关代码为here

要重新启用它们,QT_CC_WARNINGS添加到您的定义(在qmake项目中,DEFINES += QT_CC_WARNINGS)。我很确定这会触发来自Qt标头的警告...