J'ai démarré un nouveau projet et j'ai décidé de m'assurer qu'il se construit proprement avec l'option/Wall activée. Le seul problème est pas toutes les bibliothèques 3ème partie (comme coup de pouce) compiler sans avertissement préalable, donc je l'ai eu recours à le faire dans un en-tête partagé:Y at-il un moyen de désactiver tous les avertissements avec 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)
Cela fonctionne assez bien, mais chaque fois que j'ajouter de nouveaux en-têtes de boost Je dois ajouter les avertissements qu'ils génèrent à la liste. Y at-il un moyen de dire désactiver tous les avertissements pour cette section de code?
Je ne veux pas fermer les yeux sur la nécromancie, mais dans votre commentaire ici je vois une relation 1 à 1 avec le push/pop des avertissements. Si je désactive N, devrais-je appeler la pop N fois? Encore une fois, désolé de ressusciter un vieux fil. – wheaties
Le nombre d'avertissements que vous désactivez est sans importance. Le nombre de 'push' doit correspondre au nombre de 'pops' c'est tout. –
Il est également intéressant de préciser que si #pragma warning (pop) 'est utilisé, certains avertissements (4514 est un exemple) seront toujours émis, probablement parce que ces conditions d'avertissement sont détectées dans un contexte de post-compilation. – alecov