我已经开始了一个新项目,并决定确保在启用/ Wall选项的情况下干净地构建它.唯一的问题是并非所有第三方库(如boost)在没有警告的情况下编译,所以我在共享头中使用了这个:
#pragma warning(push) #pragma warning(disable:4820) #pragma warning(disable:4619) #pragma warning(disable:4668) #pragma warning(disable:4625) #pragma warning(disable:4626) #pragma warning(disable:4571) #pragma warning(disable:4347) #pragma warning(disable:4640) #pragma warning(disable:4365) #pragma warning(disable:4710) #pragma warning(disable:4820) #pragma warning(disable:4350) #pragma warning(disable:4686) #pragma warning(disable:4711) #pragma warning(disable:4548) #include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(pop)
这很好用,但每次添加新的boost标头时,我都要将它们生成的警告添加到列表中.有没有办法说禁用这段代码的所有警告?
您可以按下/弹出一个低级别的警告,如下所示:
#pragma warning(push, 0) #include#include // ... #pragma warning(pop)
但是要知道禁用所有警告是不可能的.例如,某些链接器警告无法关闭.
#pragma warning(disable:4820) #pragma warning(disable:4619) #pragma warning(disable:4668)
减少线路....
#pragma warning (disable : 4820 4619 4668)
我之前所做的是设置“ W3”选项,而不是“ Wall”,然后在我放置的每个源.cpp文件中
#pragma warning(push, 4)
在所有“ #include ...”行之后的顶部,然后
#pragma warning(pop)
作为文件的最后一行。
这样,您将在代码中获得4级警告,而在第三方代码中获得3级警告,而您对此无能为力。