このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C++:2023 Rule 10.3.1
説明
ルール定義
There should be no unnamed namespaces in header files. 1
根拠
C++ 規格によると、無名の名前空間内の名前 (たとえば、次の aVar
) は、
namespace { int aVar; }
#include
しているソース ファイルをもつ各翻訳単位が、その名前空間内の自身のオブジェクト インスタンスを定義します。通常、オブジェクトを意図的に複数定義することはないため、メモリの過剰使用、単一定義ルールの違反など、予期しない結果を引き起こす可能性があります。Polyspace 実装
チェッカーは、ヘッダー ファイル内の無名の名前空間にフラグを設定します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
グループ: Declarations |
カテゴリ: 推奨 |
バージョン履歴
R2024b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.