AUTOSAR C++14 Rule A5-2-6
The operands of a logical && or || shall be parenthesized if the operands contain binary operators
説明
ルール定義
The operands of a logical && or || shall be parenthesized if the operands contain binary operators.
根拠
二項演算子を含み、C++ 演算子の優先順位のルールに依存する論理式では、混乱を招く可能性のある、理解しにくいコードが生成されます。このコードは、予期せぬ動作と解決が難しいバグにつながる可能性があります。二項演算子を含むオペランドを小かっこで囲むと、コードが読みやすくなってレビューも容易になり、演算子の優先順位の動作が必ず予期されたとおりになります。
Polyspace 実装
前処理時に、#if 命令の式でこのルールの違反が検出されます。
チェッカーは、結合性 (a && b && c)、(a || b || c) の例外を許容します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Required、Automated |