153 votes

Désactiver l'erreur d'avertissement unique

Existe-t-il un moyen de désactiver une seule ligne d'avertissement dans un fichier cpp avec Visual Studio ?

Par exemple, si j'attrape une exception et que je ne la gère pas, j'obtiens l'erreur 4101 (variable locale non référencée). Existe-t-il un moyen d'ignorer cela uniquement dans cette fonction, mais sinon de le signaler dans l'unité de compilation ? Pour le moment, j'ai mis #pragma warning (disable : 4101) en haut du fichier, mais cela le désactive évidemment pour toute l'unité.

213voto

Andreas Brinck Points 23806
#pragma warning( push )
#pragma warning( disable : 4101)
// Your function
#pragma warning( pop ) 

132voto

Daniel Seither Points 1007

Si vous souhaitez uniquement supprimer un avertissement dans une seule ligne de code, vous pouvez utiliser le spécificateur d'avertissement suppress :

 #pragma warning(suppress: 4101)
// here goes your single line of code where the warning occurs

Pour une seule ligne de code, cela fonctionne de la même manière que d'écrire ce qui suit :

 #pragma warning(push)
#pragma warning(disable: 4101)
// here goes your code where the warning occurs
#pragma warning(pop)

30voto

Matteo Italia Points 53117

#pragma push/pop sont souvent une solution à ce genre de problèmes, mais dans ce cas pourquoi ne supprimez-vous pas simplement la variable non référencée ?

 try
{
    // ...
}
catch(const your_exception_type &) // type specified but no variable declared
{
    // ...
}

9voto

sharptooth Points 93379

Utilisez #pragma warning ( push ) , puis #pragma warning ( disable ) , puis mettez votre code, puis utilisez #pragma warning ( pop ) comme décrit ici :

 #pragma warning( push )
#pragma warning( disable : WarningCode)
// code with warning
#pragma warning( pop ) 

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