Каждый операнд логического && или || должен быть постфиксным выражением
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Каждый операнд логического && или || должен быть постфиксным выражением.
Это правило эффективно требует что операнды логического && или || операция быть соответственно заключенным в скобки. Например, вместо a + b || c, правило требует (a + b) || c или a + (b || c). В обоих совместимых случаях, левом операнде ||, это - (a + b) или b, первичное выражение и поэтому также постфиксное выражение. Для получения дополнительной информации о постфиксных выражениях смотрите C++ 03 Стандарта (Раздел 5.2).
Включение операндов в круглых скобках улучшает удобочитаемость кода и убеждается, что операции происходят в порядке, который предназначает разработчик.
Средство проверки повышает нарушение если логический && или || операнд не является постфиксным выражением.
Постфиксное выражение может быть первичным выражением, таким как простой идентификатор или комбинация идентификаторов, заключенных в круглые скобки, но также и одно из следующего:
Вызов функции, такой как func().
Доступ к элементу массива, такой как arr[].
Доступ к элементу структуры, такой как aStructVar.aMember.
Для полного списка постфиксных выражений смотрите C++ 03 Стандарта (Раздел 5.2).
Средство проверки позволяет исключения на ассоциативных цепях, таких как (a && b && c) или (a || b || c).
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
| Группа: Выражения |
| Категория: необходимый |