メインコンテンツ

AUTOSAR C++14 Rule A0-1-5

There shall be no unused named parameters in the set of parameters for a virtual function and all the functions that override it

説明

ルール定義

バーチャル関数とそれをオーバーライドするすべての関数のパラメーターのセット内に未使用の名前付きパラメーターが存在しないものとします。

根拠

未使用のパラメーターがあるということは、コードが不完全である可能性を示しています。パラメーターは、コーディングし忘れた操作用に想定されていた可能性があります。

このルールは、バーチャル関数に焦点が当てられています。これは、バーチャル関数をオーバーライドするすべての関数にバーチャル関数と同じシグネチャ (パラメーターの数や型など) が設定されている必要があるためです。パラメーターが実際には必要ない場合は、問題が元の関数からオーバーライドするすべての関数に伝播する可能性があります。

ただし、オーバーライドする関数では、特定のパラメーターが必要ない場合があります。そのパラメーターは無名のままにすることができます。このルールは、未使用のパラメーターは無名のままになるという慣例を適用します。

Polyspace 実装

バーチャル関数ごとに、チェッカーは関数のすべてのオーバーライドを検査します。使用されていない名前付きパラメーターがオーバーライドに含まれている場合は、チェッカーが元のバーチャル関数に対する違反を表示して、オーバーライドを補助的なイベントとして一覧表示します。

Polyspace では、単一の翻訳単位内でバーチャル関数の未使用パラメーターがチェックされることに注意してください。たとえば、基底クラスに未使用のパラメーターをもつバーチャル メソッドが含まれているが、そのメソッドの派生クラスの実装でそのパラメーターが使用されている場合、ルール違反になりません。しかし、基底クラスと派生クラスが別々のファイルで定義されている場合、チェッカーはファイルごとに動作するため、基底クラスではこのルールの違反にフラグが設定されます。

チェッカーは、本体が空の関数内の未使用パラメーターにはフラグを設定しません。

トラブルシューティング

ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

チェック情報

グループ: 言語に依存しない問題
カテゴリ: Required、Automated

バージョン履歴

R2020a で導入