4 votes

Désactiver les avertissements dans Visual Studio 2008

Env : Visual Studio Warning Level est réglé sur 4, Code dans le seul fichier de la solution :

#pragma warning( push )
#pragma warning( disable: 4503 )
#pragma warning( disable: 4702 )
#include <boost/property_tree/ptree.hpp>
#pragma warning ( pop ) //mark

#include "iostream"

int main()
{
boost::property_tree::ptree pt;
for( boost::property_tree::ptree::const_iterator it = pt.begin();
     it != pt.end();
     ++it )
    {
    std::cout << it->second.data() << '\n';
    }

return 0;
}

Problème : L'avertissement 4503 apparaît toujours lors de la compilation. J'ai essayé autre chose :

  1. mettre la ligne avec '//mark' comme dernière ligne de l'application, sans effet.
  2. si j'utilise #pragma warning( disable : 4503 4702 ) sans push/pop, ça marche, mais ça affecte ce qui a été compilé ensuite pour toute la solution, même si je mets #pragma warning( default : xx ) quelque part, ça n'a pas l'air de remettre l'avertissement à son état par défaut.

Qui sait pourquoi cela se produit et quelle est la meilleure solution pour supprimer les avertissements dans Visual Studio ?

2voto

JQ. Points 312

A trouvé la réponse ici : http://connect.microsoft.com/VisualStudio/feedback/details/442051/cannot-suppress-warning-in-template-function

En gros, la raison est que les avertissements générés dans mon code ne se trouvent pas dans le fichier d'en-tête, car il s'agit d'un modèle. Si le code était généré dans les fichiers d'en-tête, cela fonctionnerait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X