AUTOSAR C++14 Rule A5-1-9
Identical unnamed lambda expressions shall be replaced with a named function or a named lambda expression
説明
ルール定義
Identical unnamed lambda expressions shall be replaced with a named function or a named lambda expression.
根拠
名前のないラムダ式を再利用すると、コード内で呼び出すたびにそのラムダ式の本体を挿入することになります。このようなコードの重複は、変更を加えるときに保守性の問題を引き起こす可能性があります。その変更を適用するときにどのラムダ式が同一であるかの特定を間違える可能性があるからです。コードの重複はコードの読みやすさも損ないます。
Polyspace 実装
名前のないラムダ式を最初に使用した後、Polyspace® はその後の同一のラムダ式の各使用箇所にフラグを設定します。たとえば、同じラムダ式を 3 回再利用する場合、Polyspace は 2 回目と 3 回目のラムダ式に別々の違反のフラグを設定します。また、Polyspace は、ソース コードで最初に名前のないラムダ式を使用した箇所を強調表示します。
Polyspace は、グローバル スコープのラムダ式の再利用にはフラグを設定しません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Advisory、Automated |
バージョン履歴
R2020b で導入