Sdílet prostřednictvím


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žijte std::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
}