警告 C26457
(void)
不應該用來忽略傳回值,請改用 'std::ignore =
' (es.48)
備註
C++ Core Guideline ES.48 摘錄:
絕對不要轉換成
(void)
忽略傳[[nodiscard]]
回值。 如果您刻意要捨棄這類結果,請先仔細思考這是否真的是個好主意(通常有充分的理由是函式作者或第一次使用的[[nodiscard]]
傳回型別)。 如果您仍然認為這是適當的,且您的程式代碼檢閱者同意,請使用std::ignore =
來關閉簡單、可攜且容易 grep 的警告。
程式碼分析名稱:USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
範例
使用 std::ignore
,而不是轉換成 void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}