Aviso C26457
(void)
não deve ser usado para ignorar valores de retorno, use ''std::ignore =
em vez disso (es.48)
Comentários
Trecho da diretriz principal do C++ ES.48:
Nunca converta
(void)
para ignorar um valor retornado[[nodiscard]]
. Se você deseja deliberadamente descartar tal resultado, primeiro pense bem se isso é realmente uma boa ideia (geralmente há uma boa razão para o autor da função ou do tipo de retorno ter usado[[nodiscard]]
em primeiro lugar). Se ainda assim você achar que isso é apropriado e seu revisor de código concordar, usestd::ignore =
para desativar o aviso, um procedimento simples, portátil e pode ser submetido a grep com facilidade.
Nome da análise de código: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Exemplo
Use std::ignore
em vez de converter para void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}