Avviso C26457
(void)
non deve essere usato per ignorare i valori restituiti, usare invece 'std::ignore =
' (es.48)
Osservazioni:
Estratto delle linee guida di base C++ ES.48:
Non eseguire mai il cast per
(void)
ignorare un[[nodiscard]]
valore restituito. Se si vuole eliminare deliberatamente un risultato di questo tipo, considerare prima di tutto se si tratta di una buona idea (in genere c'è un buon motivo per cui l'autore della funzione o del tipo restituito usato[[nodiscard]]
in primo luogo). Se si ritiene ancora appropriato e il revisore del codice accetta, usarestd::ignore =
per disattivare l'avviso che è semplice, portatile e facile da grep.
Nome dell'analisi del codice: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Esempio
Usare std::ignore
anziché eseguire il cast in void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}