Upozornění C26457
(void)
by se nemělo používat k ignorování vrácených hodnot, použijte místo toho "std::ignore =
" (es.48).
Poznámky
Výňatek z obecných zásad jazyka C++ ES.48:
Nikdy nepřetypujte, aby
(void)
se ignorovala návratová[[nodiscard]]
hodnota. Pokud záměrně chcete takový výsledek zahodit, nejprve se zamyslete nad tím, jestli je to opravdu dobrý nápad (obvykle je dobrý důvod, proč autor funkce nebo návratového typu použitého[[nodiscard]]
na prvním místě). Pokud si stále myslíte, že je to vhodné a váš kontrolor kódu souhlasí, použijtestd::ignore =
k vypnutí upozornění, které je jednoduché, přenosné a snadné grep.
Název analýzy kódu: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Příklad
Místo přetypování použijtestd::ignore
:void
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}