Поделиться через


Предупреждение C26457

(void) не следует использовать для пропуска возвращаемых значений, вместо этого используйте "std::ignore =" (es.48)

Замечания

Отрывок из основного руководства C++ ES.48:

Никогда не приводится к (void) пропуску возвращаемого [[nodiscard]] значения. Если вы намеренно хотите отменить такой результат, сначала подумайте, является ли это действительно хорошей идеей (обычно есть хорошая причина автор функции или возвращаемого типа, используемого [[nodiscard]] в первую очередь). Если вы по-прежнему считаете, что это уместно, и ваш рецензент кода согласен, используйте std::ignore = для отключения предупреждения, которое является простым, переносимым и легким для жадности.

Имя анализа кода: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST

Пример

Используйте std::ignore вместо приведения voidв :

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

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