Comencé un nuevo proyecto y he decidido asegurarme de que se construya limpiamente con la opción/Wall habilitada. El único problema es que no todas las bibliotecas 3 ª parte (como refuerzo) compile sin advertencias, así que he recurrido a hacer esto en una cabecera compartida:¿Hay alguna forma de desactivar todas las advertencias 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)
Esto funciona bastante bien, pero cada vez que añadir nuevas cabeceras de impulso Tengo que agregar las advertencias que generan a la lista. ¿Hay alguna manera de decir deshabilitar todas las advertencias para este tramo de código?
no me refiero a tolerar la nigromancia pero en su comentario aquí veo una relación 1 a 1 con el empuje/pop de las advertencias. Si desactivo N advertencias tendré que llamar pop N veces? De nuevo, siento resucitar un hilo viejo. – wheaties
El número de advertencias que deshabilita es irrelevante. El número de 'empujones' tiene que coincidir con el número de 'pops', eso es todo. –
Además, es interesante indicar que si se usa '#pragma warning (pop)', algunas advertencias (4514 es un ejemplo) seguirán emitiéndose, probablemente porque estas condiciones de advertencia se detectan en algún contexto de compilación posterior. – alecov