AUTOSAR C++14 Rule A5-3-1
Evaluation of the operand to the typeid operator shall not contain side effects
説明
ルール定義
Evaluation of the operand to the typeid operator shall not contain side effects.
根拠
typeid 演算子は、オペランドが多様型への参照を返す関数への呼び出しである場合にのみ、そのオペランドを評価します (多様型はバーチャル関数を含むクラス型です)。それ以外のすべての場合は、typeid 演算子に与えられた式が評価されません。
保守が容易なコードの場合は、typeid 演算子を使用するときに、二次的影響のある式をすべて回避します。開発者は、式の構成要素の定義の特定と、実際に二次的影響が発生したかどうかの決定を行わずに済みます。
Polyspace 実装
チェッカーは、二次的影響がある式を伴う typeid 演算子にフラグを設定します。関数呼び出しには二次的影響があると想定されます。
チェッカー メッセージは、式が評価されるか無視されるかを示します。式が評価され、別のステートメントで評価を実行する代わりに typeid 演算内の式を保持する場合は、他のレビューを回避するためのコメントを結果またはコードに追加します。詳細は、以下を参照してください。
Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処 (Polyspace ユーザー インターフェイスで結果をレビューする場合)。
Polyspace Access でのバグ修正または正当化による結果への対処 (Polyspace Access) (Web ブラウザーで結果をレビューする場合)。
コードへの注釈付けと既知の結果または許容可能な結果の非表示 (IDE で結果をレビューする場合)
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 式 |
| カテゴリ: Required、Non-automated |
バージョン履歴
R2020b で導入