Compartilhar via


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, use std::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
}