Advertencia C26457
(void)
no debe usarse para omitir los valores devueltos, use 'std::ignore =
' en su lugar (es.48)
Comentarios
Extracto de la guía básica de C++ ES.48:
Nunca convierta en
(void)
para omitir un valor devuelto[[nodiscard]]
. Si desea descartar deliberadamente este resultado, primero piense bien si es realmente una buena idea (normalmente hay una buena razón por la que el autor de la función o del tipo de valor devuelto usaron[[nodiscard]]
en primer lugar). Si sigue pensando que es adecuado y el revisor de código está de acuerdo, usestd::ignore =
para desactivar la advertencia. Este proceso es simple, portable y se puede hacer fácilmente con el comando grep.
Nombre de análisis de código: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Ejemplo
Use std::ignore
en lugar de convertir en void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}