如何禁用来自boost库的所有MSVC警告?
我知道我可以禁用它们发生的特定警告等...但它使我的代码混乱,如果我使用boost宏,那么它们似乎不起作用。我想有一个简单的方法告诉我的编译器不要给我关于boost的警告。这可能吗?
在次要说明中,我有点惊讶的是,升级库并未在内部禁用所有这些警告,以便我们的用户可以“开箱即用”使用它。
答案 0 :(得分:2)
他们非常努力地避免警告,但是有些编译器会警告代码是正式的,只是有点“可疑”。如果您更改代码以使警告静音,则另一个编译器可能会警告该代码!
Boost代码和各种编译器都有警告策略 https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines
他们还特别注意不要禁用警告,因为您可能在代码的某些部分中警告实际上是正确的。如果Boost禁用警告,您可能无法在代码中找到错误!
答案 1 :(得分:1)
您可以通过更改默认属性页来禁用所有项目的警告:
由于可能不希望为所有项目禁用这些警告,因此您似乎可以在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)
这种方式的缺点:一些编译时效率低下