このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR C++14 Rule M7-1-2
A pointer or reference parameter in a function shall be declared as pointer to const or reference to const if the corresponding object is not modified
説明
ルール定義
A pointer or reference parameter in a function shall be declared as pointer to const or reference to const if the corresponding object is not modified
根拠
関数シグネチャのベスト プラクティスは、パラメーターでオブジェクトを関数に渡した場合に、そのオブジェクトが変更されるかどうかを明確に伝えることです。次の関数シグネチャについて考えます。
void foo(const in&); void bar(int&);
foo() が const の参照として整数を受け入れます。これにより、入力参照が foo() によって変更されないことが明確に伝わります。bar() のシグネチャからは、入力参照が変更されるかどうかが明確ではありません。このルールに準拠するには、名前付きポインターまたは参照パラメーターの型を const で修飾します。例外として、一連のオーバーライド関数のうちのいずれかによってパラメーターが変更される場合、このルールは適用されません。
Polyspace 実装
チェッカーは、基になるオブジェクトが関数本体で変更されない場合、const でないポインター パラメーターにフラグを設定します。
ポインター パラメーターが const でない参照またはポインターとして別の関数に渡される場合、チェッカーは、そのパラメーターは変更される可能性があると想定します。このようなパラメーターは違反として報告されません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 宣言 |
| カテゴリ: Required、Automated |