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
}
}