メインコンテンツ

AUTOSAR C++14 Rule M7-3-1

The global namespace shall only contain main, namespace declarations and extern "C" declarations.

説明

ルール定義

The global namespace shall only contain main, namespace declarations and extern "C" declarations.

根拠

このルールは、グローバル スコープで見つかったすべての名前が 1 つの名前空間に属していることを確認します。このルールに従うことによって、名前の衝突が回避され、開発者が変数名を再利用することでコンパイル/リンク エラーが発生したり、変数名をシャドウすることで後で予期せぬ問題が発生したりすることを防ぐことができます。

Polyspace 実装

main 関数を除いて、チェッカーは、グローバル スコープで使用されている名前空間に属していないすべての名前にフラグを設定します。

名前が extern "C" ブロック (C++ コード内に含まれている C コード) で宣言されている場合、グローバル スコープでその名前にはフラグが設定されることはありません。ただし、オプション [リンク エラーを無視] (-no-extern-c) が使用されている場合は、これらの名前にもフラグが設定されます。

トラブルシューティング

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

チェック情報

グループ: 宣言
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入