Есть ли флаг предупреждения gcc, когда оценка короткого замыкания может привести к тому, что функция не будет вызвана? - PullRequest
3 голосов
/ 22 сентября 2019

Например, в коде:

bool foo = bar || baz();

функция baz() не может быть вызвана.Я обнаружил, что это типичный источник ошибок для меня, и мне интересно, есть ли способ для GCC напечатать предупреждение.

1 Ответ

1 голос
/ 22 сентября 2019

Для этого нет флага предупреждения, он будет генерировать предупреждение для слишком большого числа общих условий (if(condition) bar();, if(foo && foo->bar) baz(); и т. Д.).

Вместо этого сделайте что-то похожее на это:

bool foo = baz() || bar;

или это:

bool foo = bar | baz();

Это безоговорочно вызывает baz().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...