使用 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...
的警告
下面的代码会生成警告:
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...