メインコンテンツ

AUTOSAR C++14 Rule A16-7-1

The #pragma directive shall not be used

説明

ルール定義

#pragma 命令を使用してはなりません。

根拠

コード内で #pragma 命令を使用すると、処理系定義の動作が引き起こされます。命令が特定のコンパイラでサポートされていない可能性もあります。

トラブルシューティング

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

すべて展開する

//header.h
#pragma once //Noncompliant

#ifndef HEADER_H_ //Compliant
#define HEADER_H_
// ...
// body of header file
//..
#endif

#pragma once 命令は、header.h を複数回インクルードすることを防ぎます。ただし、header.h を複数のプロジェクト モジュールにコピーした場合、実装によっては、命令がコピーを同じファイルとして処理する場合もあれば、そうでない場合もあります。定義が重複しないようにするには、代わりに #ifndef インクルード ガードを使用します。

チェック情報

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

バージョン履歴

R2019b で導入