how - pragma comment c++




Gibt es eine Möglichkeit, alle Warnungen mit einem Pragma zu deaktivieren? (2)

Sie können eine niedrige Warnstufe wie folgt drücken:

#pragma warning(push, 0)        

#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
// ...

#pragma warning(pop)

Aber wissen Sie, dass es nicht möglich ist, alle Warnungen zu deaktivieren. Zum Beispiel können einige Linker Warnungen nicht ausgeschaltet werden.

Ich habe ein neues Projekt gestartet und entschieden, dass es sauber erstellt wird, wenn die Option / Wall aktiviert ist. Das einzige Problem ist, dass nicht alle 3rd-Party-Bibliotheken (wie Boost) ohne Warnungen kompiliert werden, also habe ich in einem gemeinsamen Header darauf zurückgegriffen:

#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)

Das funktioniert gut genug, aber jedes Mal, wenn ich neue Boost-Header hinzufüge, muss ich alle Warnungen, die sie generieren, zur Liste hinzufügen. Gibt es eine Möglichkeit zu sagen, alle Warnungen für diesen Codeabschnitt zu deaktivieren?


Was ich vorher gemacht habe, ist die "W3" -Option und nicht "Wall" in jeder meiner eigenen .cpp-Dateien

#pragma warning(push, 4)

ganz oben nach allen "#include ..." Zeilen und dann

#pragma warning(pop)

als die letzte Zeile der Datei.

Auf diese Weise erhalten Sie Level 4-Warnungen in Ihrem Code und Level 3 in 3rd-Party-Code, über die Sie nichts machen können.







pragma