Udostępnij za pośrednictwem


Ostrzeżenie C26457

(void) nie należy używać do ignorowania wartości zwracanych, użyj wartości "std::ignore =" zamiast (es.48)

Uwagi

Fragment wytycznych dotyczących rdzeni języka C++ES.48:

Nigdy nie rzutuj, aby (void) zignorować wartość zwracaną [[nodiscard]] . Jeśli celowo chcesz odrzucić taki wynik, najpierw zastanów się, czy jest to naprawdę dobry pomysł (zazwyczaj istnieje dobry powód, dla którego autor funkcji lub typu zwracanego jest używany [[nodiscard]] w pierwszej kolejności). Jeśli nadal uważasz, że jest to odpowiednie, a recenzent kodu zgadza się, użyj std::ignore = polecenia , aby wyłączyć ostrzeżenie, które jest proste, przenośne i łatwe do grep.

Nazwa analizy kodu: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST

Przykład

Użyj std::ignore polecenia zamiast rzutowania na :void

struct S{};
[[nodiscard]] S getS();

void function() {
    (void) getS(); // C26457
    std::ignore = getS(); // OK
}