代码中的几行没有得到c4267警告

时间:2017-11-09 09:04:19

标签: c++ visual-studio

我的任务是删除其中一个项目中的所有警告。 在代码中的一个地方,我有以下几行。

dims[0] = children.size();

如果dims为' int '数组且子项为'向量',则size_t将分配给int。我正在VS2015上编译此代码。

理想情况下,上述作业应生成警告

"C4267: '=': conversion from 'size_t' to 'int', possible loss of data"

但我没有得到任何此类警告。所以代码中没有警告。

现在,我使用“/we4267”将警告 4267 转换为错误,然后开始获取上述行的错误。

我很困惑为什么编译在第一时间没有显示任何警告。

感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

我发现当添加/ WX编译器选项时,会抑制一些警告,在我的情况下为C4267。添加编译器选项/ WX / Wall或将它们全部一起删除会显示错误/警告C4267。在我的情况下,我在其他模块中遇到错误,因为没有警告相关的编译器选项添加但是我没有得到C4267警告的模块,有编译器选项/ WX。

它只是没有关于此的文件(或者可能是我找不到)。