メインコンテンツ

AUTOSAR C++14 Rule A6-5-4

For-init-statement and expression should not perform actions other than loop-counter initialization and modification

説明

ルール定義

for の初期化ステートメントおよび初期化式では、ループ カウンターの初期化と変更以外の処理を実行してはなりません。

根拠

for の初期化ステートメントおよび初期化式に、ループカウンターの初期化と変更のみが含まれている場合、このステートメントと式の読み取り、理解、保守が容易になります。

Polyspace 実装

このチェッカーは、以下の状態にフラグを設定します。

  • loop パラメーターを決定できない場合に報告します。JSF® C++ ルール 200 に違反していないことを前提としています。loop variable パラメーターは変数であると仮定されます。

  • クラス タイプでない 1 個のループ パラメーターを仮定します (JSF C++ ルール 198 を参照)。ルールが報告されるには、JSF C++ ルール 200 に違反してはなりません。

トラブルシューティング

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

すべて展開する

for ループには複数のループ パラメーターが含まれているため、Polyspace は for ループに非準拠としてフラグを設定します。

#include <cstdint> 

void example()
{
	for (std::int32_t x, y = 0; x < y; x++)  //Noncompliant
	{
		//...
	}
}

チェック情報

グループ: ステートメント
カテゴリ: Advisory、Automated

バージョン履歴

R2019a で導入