C6287
avertissement C6287 : code redondant : les sous-expressions gauche et droite sont identiques
Cet avertissement indique qu'un élément redondant a été détecté dans une expression.
Il est difficile d'évaluer la gravité de ce problème sans examiner le code.Un test dupliqué ne présente aucun danger, mais les conséquences de la suppression du deuxième test peuvent être graves.Le code doit être examiné pour vérifier qu'aucun test n'a été omis.
Exemple
Le code suivant génère cet avertissement :
void f(int x)
{
if ((x == 1) && (x == 1))
{
//logic
}
if ((x != 1) || (x != 1))
{
//logic
}
}
Le code suivant présente diverses méthodes permettant de corriger cet avertissement :
void f(int x, int y)
{
/* Remove the redundant sub-expression: */
if (x == 1)
{
// logic
}
if (x != 1)
{
// logic
}
/* or test the missing variable: */
if ((x == 1) && (y == 1))
{
// logic
}
if ((x != 1) || (y != 1))
{
// logic
}
}