下面的代码会产生一个警告:
警告 C4244:“正在初始化”:从“int64_t”到“int”的转换,可能会丢失数据
使用 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 头文件(间接地)包含在内。相关编码为here .
要重新启用它们,将 QT_CC_WARNINGS
添加到您的定义中(在 qmake 项目中,DEFINES += QT_CC_WARNINGS
)。我很确定这会触发来自 Qt header 的警告...
关于c++ - 使用 Qt 缺少转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559212/