AUTOSAR C++14 Rule M14-6-1
In a class template with a dependent base, any name that may be found in that dependent base shall be referred to using a qualified-id or this->.
説明
ルール定義
"In a class template with a dependent base, any name that may be found in that dependent base shall be referred to using a qualified-id or this->."
根拠
あるクラス テンプレートが別のクラス テンプレートから派生する場合、基底テンプレートと現在のスコープまたは名前空間の両方に存在する名前を使用することで、混乱が生じる可能性があります。基底クラス テンプレートとそれらのクラスが含まれる名前空間の両方に同じ名前が存在する場合、これらの名前のスコープ解決はコンパイラに依存するため、開発者の想定に反した結果になる可能性があります。このような名前の競合が発生した場合の混乱を避けるためには、完全修飾 ID または this-> を使用して明示的に意図するオブジェクトを示して曖昧さをなくします。
Polyspace 実装
Polyspace® は、次の条件がすべて当てはまる名前に対し、フラグを設定します。
名前が基底クラスに存在する。
名前が基底クラスを含む名前空間に存在する。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: テンプレート |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入