Advertencia C6326
Comparación potencial de una constante con otra constante
Comentarios
Esta advertencia indica una posible comparación de una constante con otra constante, que es código redundante. Debe asegurarse de que la intención se capture correctamente en el código. En algunos casos, puede simplificar la condición de prueba para lograr el mismo resultado.
Nombre del análisis de código: CONST_CONST_COMP
Ejemplo
El código siguiente genera esta advertencia porque se comparan dos constantes:
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f()
{
if( value > STD_LEVEL)
{
// code...
}
else
{
// code...
}
}
El código siguiente muestra una manera de corregir esta advertencia mediante C++17 if constexpr
.
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f()
{
if constexpr( value > STD_LEVEL)
{
// code...
}
else
{
// code...
}
El código siguiente muestra una manera de corregir esta advertencia mediante las instrucciones #ifdef para determinar qué código debe ejecutarse si C++17 no está disponible:
#define LEVEL
const int STD_LEVEL = 5;
const int value =
#ifdef LEVEL
10;
#else
5;
#endif
void f ()
{
#ifdef LEVEL
{
// code...
}
#else
{
// code...
}
#endif
}
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de