Ho avviato un nuovo progetto e ho deciso di assicurarmi che si costruisca in modo pulito con l'opzione/Wall abilitata. L'unico problema non è tutte le librerie 3rd parti (come boost) compilare senza avvertimenti, così ho fatto ricorso a fare questo in un colpo di testa comune:C'è un modo per disattivare tutti gli avvisi con un pragma?
#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)
Questo funziona abbastanza bene, ma ogni volta che aggiungere nuove intestazioni di spinta Devo aggiungere tutti gli avvisi che generano alla lista. C'è un modo per dire disabilitare tutti gli avvertimenti per questo tratto di codice?
non mi riferisco a condonare necromanzia ma nel tuo commento qui vedo una relazione 1-to-1 con il push/pop di avvertimenti. Se disattivo N avvisi dovrò chiamare pop N volte? Di nuovo, mi dispiace risorgere un vecchio thread. – wheaties
Il numero di avvisi disabilitati è irrilevante. Il numero di "spinte" deve corrispondere al numero di "pop" che è tutto. –
Inoltre, è interessante affermare che se viene utilizzato '#pragma warning (pop)', alcuni avvisi (4514 è un esempio) verranno comunque emessi, probabilmente perché queste condizioni di avviso vengono rilevate in alcuni contesti post-compilazione. – alecov