Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
(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
}