Compartir a través de


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, use std::ignore = para desactivar la advertencia. Este proceso es simple, portable y se puede hacer fácilmente con el comando grep.

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