Ich habe ein neues Projekt gestartet und entschieden, dass es sauber erstellt wird, wenn die Option/Wall aktiviert ist. Das einzige Problem ist nicht alle 3rd-Party-Bibliotheken (wie Boost) ohne Warnungen kompilieren, also habe ich in einem gemeinsamen Header zu tun dies zurückgegriffen:Gibt es eine Möglichkeit, alle Warnungen mit einem Pragma zu deaktivieren?
#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)
Dies funktioniert gut genug, aber jedes Mal, wenn ich neue Impulse Header hinzufügen Ich muss alle Warnungen, die sie generieren, der Liste hinzufügen. Gibt es eine Möglichkeit zu sagen, alle Warnungen für diesen Codeabschnitt zu deaktivieren?
meine ich nicht Nekromantie dulden, sondern in ihrem Kommentar hier sehe ich eine 1-zu-1-Beziehung mit dem Push/Pop von Warnungen. Wenn ich N Warnungen deaktiviere, muss ich Pop N mal anrufen? Es tut mir leid, einen alten Thread wieder auferstehen zu lassen. – wheaties
Die Anzahl der Warnungen, die Sie deaktivieren, ist irrelevant. Die Anzahl der "Pushs" muss der Anzahl der "Pops" entsprechen. –
Es ist auch interessant zu sagen, dass, wenn '#pragma warning (pop)' verwendet wird, einige Warnungen (4514 ist ein Beispiel) immer noch ausgegeben werden, wahrscheinlich weil diese Warnbedingungen in einem Kontext nach der Kompilierung entdeckt werden. – alecov