メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

AUTOSAR C++14 Rule A0-1-4

There shall be no unused named parameters in non-virtual functions

説明

ルール定義

非バーチャル関数内に未使用の名前付きパラメーターがあってはなりません。

根拠

未使用のパラメーターがあるということは、コードが不完全である可能性を示しています。たとえば、特定の操作でパラメーターを使用する予定であったものの、設計が変更されたためにその操作をコーディングしなかった場合、コードではそのパラメーターは使用されません。

そのパラメーターがコピーによって取得されたものであり、コピーされたオブジェクトが大きいと、冗長なコピーによりパフォーマンスが低下するおそれがあります。

Polyspace 実装

チェッカーは、関数本体が空でない限り、未使用の名前付きパラメーターをもつ関数にフラグを立てます。

トラブルシューティング

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

すべて展開する

この例では、クラス Body に 2 つの関数 (femurbmi) が含まれていて、どちらも 2 つのパラメーター (xy) を取ります。関数 bmi は両方のパラメーターを使用します。一方、コードの関数 femur の本体内ではパラメーター y が使用されていません。

class Body {
public:
    double femur(double x, double y) {     //Noncompliant
        return x * 0.2674;
    }

    double bmi(double x, double y) {       //Compliant
        double bmi = ((y / (x * x)) * 703); 
        return bmi;
    }
};

int main()
{
    double height = 72;
    double weight = 185;
    Body example;

    example.femur(height, weight);
    example.bmi(height, weight);

    return 0;
}

未使用のパラメーター y がプログラミング エラーによるもので、このパラメーターを使用する必要がある場合は、エラーを修正します。そうでない場合は、未使用のパラメーターを削除します。

チェック情報

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

バージョン履歴

R2019a で導入

すべて展開する