禁用/ W4警告升级

时间:2011-03-22 11:26:37

标签: c++ visual-studio-2010 boost warnings

如何禁用来自boost库的所有MSVC警告?

我知道我可以禁用它们发生的特定警告等...但它使我的代码混乱,如果我使用boost宏,那么它们似乎不起作用。我想有一个简单的方法告诉我的编译器不要给我关于boost的警告。这可能吗?

在次要说明中,我有点惊讶的是,升级库并未在内部禁用所有这些警告,以便我们的用户可以“开箱即用”使用它。

3 个答案:

答案 0 :(得分:2)

他们非常努力地避免警告,但是有些编译器会警告代码是正式的,只是有点“可疑”。如果您更改代码以使警告静音,则另一个编译器可能会警告该代码!

Boost代码和各种编译器都有警告策略 https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines

他们还特别注意不要禁用警告,因为您可能在代码的某些部分中警告实际上是正确的。如果Boost禁用警告,您可能无法在代码中找到错误!

答案 1 :(得分:1)

您可以通过更改默认属性页来禁用所有项目的警告:

  • 打开任何项目。
  • 点击 view->物业经理。
  • 在 物业经理(可能沿着 左栏),然后展开项目 然后展开其中一个配置文件 双击其中一个类别 您的所有项目将使用: Microsoft.Cpp.Win32.user, 应用程序,或者可能是核心Windows 库。
  • 这提出了 属性页面,但适用于您编写或将要编写的所有代码。设置 适当的预处理器定义 并禁用/ wp64或任何你 需要为个别项目做。

由于可能不希望为所有项目禁用这些警告,因此您似乎可以在visual_c.hpp中禁用警告,如下所述:Boost warnings with VC++ 9。但是,每次更新库时,您都必须进行更改。

答案 2 :(得分:0)

首先要想到的是创建一个特殊的头文件来放置所有Boost #include。这些#include应该被#pragma

块包围
#pragma warning(push, 0)        

#include <boost/bimap.hpp>
#include <boost/function.hpp>

#pragma warning(pop)

这种方式的缺点:一些编译时效率低下