Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
(void)ska inte användas för att ignorera returvärden, använd "std::ignore =" i stället (es.48)
Anmärkningar
Utdrag ur C++ Core-riktlinjen ES.48:
Kasta aldrig till
(void)för att ignorera en[[nodiscard]]returvärde. Om du medvetet vill kassera ett sådant resultat, bör du först tänka noga på om det verkligen är en bra idé (det finns vanligtvis en bra anledning till att författaren till funktionen eller returtypen använde[[nodiscard]]från början). Om du fortfarande tycker att det är lämpligt och kodgranskaren godkänner det kan du användastd::ignore =för att inaktivera varningen som är enkel, portabel och lätt att ta bort.
Kodanalysnamn: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Exempel
Använd std::ignore i stället för att casta till void:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}