メインコンテンツ

AUTOSAR C++14 Rule A16-2-2

There shall be no unused include directives

R2021b 以降

説明

ルール定義

There shall be no unused include directives.

根拠

使用されない include 命令は不必要にコード ベースのサイズを増やして依存関係を生じさせるため、コンパイル プロセスの速度が低下します。この問題を回避するには、使用されない include 命令を削除してください。

使用されない include 命令をコードから削除します。

Polyspace 実装

ソース ファイルでシンボルの宣言を含むヘッダー ファイルをインクルードした場合、それらのシンボルがソース ファイルで使用されないと、Polyspace® が違反を報告します。このルール チェッカーでは、外部ライブラリはチェックされません。

Polyspace は、次のことが行われない場合、include 命令が使用されていないと見なします。

  • インクルードされたファイルで定義されているマクロ、またはそのインクルードされたファイルのインクルードで定義されているマクロの呼び出し。

  • インクルードされたファイルで定義されているデータ型、またはそのインクルードされたファイルのインクルードで定義されているデータ型の使用。

  • インクルードされたファイルで定義されているオブジェクトあるいは関数、またはそのインクルードされたファイルのインクルードで定義されているオブジェクトあるいは関数の、呼び出しまたはそれらへの参照の使用。

  • インクルードされたファイルによってそのファイルの外部に提供される、外部から可視のオブジェクトの使用。

トラブルシューティング

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

すべて展開する

ソース ファイルは <algorithm> ヘッダー ファイルで定義されているシンボル、マクロ、またはデータ型を使用しないため、Polyspace は <algorithm> ヘッダー ファイルに対する違反を報告します。使用されない include 命令をソース ファイルから削除します。

#include <algorithm>	//Noncompliant
#include <cstdint>
#include <iostream>


void main()
{
	int32_t num = 5;
	std::cout << "Hello world : " << num;
}

チェック情報

グループ: プリプロセッサ命令
カテゴリ: Required、Automated

バージョン履歴

R2021b で導入