以下代码会生成警告:
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隐藏了自己的警告泄漏到我的来源吗?我可以避免吗?
答案 0 :(得分:1)
qglobal.h
禁用了一堆过于冗长的警告,几乎任何Qt标头都会(间接)包含这些警告。相关代码为here。
要重新启用它们,将QT_CC_WARNINGS
添加到您的定义(在qmake项目中,DEFINES += QT_CC_WARNINGS
)。我很确定这会触发来自Qt标头的警告...