Warnung C26457
(void)
sollte nicht zum Ignorieren von Rückgabewerten verwendet werden, verwenden Sie stattdessen "std::ignore =
" (es.48)
Hinweise
Auszug aus der C++-Kernrichtlinie ES.48:
Nie in
(void)
einen Rückgabewert umwandeln, um einen[[nodiscard]]
Rückgabewert zu ignorieren. Wenn Sie ein solches Ergebnis absichtlich verwerfen möchten, überlegen Sie zuerst, ob dies wirklich eine gute Idee ist (in der Regel gibt es einen guten Grund für den Autor der Funktion oder den Rückgabetyp, der zuerst verwendet wird[[nodiscard]]
). Wenn Sie immer noch der Meinung sind, dass dies angemessen ist und Ihr Codeprüfer zustimmt, verwenden Sie die Möglichkeitstd::ignore =
, die Warnung zu deaktivieren, die einfach, portierbar und einfach zu grep ist.
Name der Codeanalyse: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Beispiel
Verwenden Sie std::ignore
anstelle der Umwandlung in void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}