によると、MISRA C++ 2-5-1
通常、有向グラフを台無しにすることは避けるべきです。ただし、一般的な演算子、、 ...を定義するために、読み取り可能な単語 、 などのand
使用も避ける必要がある理由がわかりません。or
not
&&
||
この問題は、Sonar/MISRA の「主要な」問題として強調されています。
[Major] Open Replace this digraph 'and' by its equivalent '&&'
[Major] Open Replace this digraph 'and' by its equivalent '&&'
[Major] Open Replace this digraph 'or' by its equivalent '||'
[Major] Open Replace this digraph 'or' by its equivalent '||'
[Major] Open Replace this digraph 'or' by its equivalent '||'
特定の理由で、ルールに人間が読める??=
ダイグラフ (不可解な,とはまったく異なる)も含まれているのか、それともルールが一般的すぎるのか? それらを使用する際の特定のリスクや副作用は見つかりませんでしたが、間違っていますか???/
まとめ
この MISRA ルールに、人間が読めるダイグラフも含める機能上の理由はありますか? コードコンプライアンスルールをやみくもに満たすためだけにそれらを避けるべきですか、それとも背後に隠れている本当のトリッキーな理由がありますか?