使用 Qt 缺少转换警告

Missing conversion warning using Qt

下面的代码会生成警告:

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 是否隐藏了自己泄漏到我的源代码中的警告?我可以避免吗?

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

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

的警告