C6287
avviso C6287: codice ridondante: le sottoespressioni di sinistra e destra sono identiche
L'avviso indica che in un'espressione è stato rilevato un elemento ridondante.
È difficile giudicare la gravità del problema senza esaminare il codice:di per sé un test duplicato è innocuo ma le conseguenze dell'eliminazione del secondo test possono essere gravi.È necessario esaminare il codice per accertarsi che non sia stato omesso un test.
Esempio
Il codice seguente genera questo avviso:
void f(int x)
{
if ((x == 1) && (x == 1))
{
//logic
}
if ((x != 1) || (x != 1))
{
//logic
}
}
Nel codice seguente sono riportati diversi metodi per risolvere il problema:
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
}
}