我开始一个新项目,并决定使用启用/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 <boost/array.hpp>
#include <boost/assert.hpp>
#include <boost/assign.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/function.hpp>
#include <boost/integer.hpp>
#include <boost/optional.hpp>
#include <boost/regex.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/utility.hpp>
#include <boost/variant.hpp>
#pragma warning(pop)
这个方法运行良好,但是每次我添加新的boost头文件时,我都必须将它们生成的任何警告添加到列表中。有没有一种方法可以禁用此代码段中的所有警告?
#pragma warning (pop)
,仍然会发出某些警告(例如 4514),这可能是因为在某些后编译上下文中依然检测到了这些警告条件。 - alecov