MISRA C++:2008 Rule 2-7-2
Sections of code shall not be "commented out" using C-style comments
説明
ルール定義
Sections of code shall not be "commented out" using C-style comments. 1
根拠
/* */ で囲まれた C スタイルのコメントは入れ子をサポートしていません。/* で始まるコメントは、*/ が後続の入れ子のコメントの末尾として意図されている場合でも先頭の */ で終わります。既にコメント アウトされているコードのセクションにコメントが含まれている場合は、コンパイル エラー (または少なくとも意図されたものより少ないコードのコメント アウト) になる可能性があります。
コードのコメント アウトはお勧めしません。コメント アウトされたコードは、コンパイル エラーにはならず、周囲のコードと非同期のままになる可能性があります。後で、そのコードのコメントを解除すると、予期せぬ問題が発生する可能性があります。
コメントは、コード自体では明らかでないコードの側面を説明するためにのみ使用してください。
Polyspace 実装
チェッカーは内部でヒューリスティックな方法を使用してコメントアウトされたコードを検出します。たとえば、#、;、{、} などの文字はコードを含む可能性があるコメントを示します。このようなコメントは他のメトリクスに対して評価されて、コメントになりすましたコードである可能性を判断します。たとえば、数個の単語が間に記号をはさまずに連続していれば、この可能性は減少します。
チェッカーは、コードを含んでいても次のコメントに対してはフラグを設定しません。
/**または/*!で始まる doxygen コメント。同じ記号を複数個繰り返すコメント。たとえば、次の場合の
=記号。/* ===================================== * A comment * =====================================*/
ファイルの最初の行のコメント。
C スタイル (
/* */) と C++ スタイル (//) が混在したコメント。
チェッカーは、このようなコメントがドキュメンテーション目的か、または事前に考慮されたうえで意図的に入力されたものと見なします。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: Lexical Conventions |
| カテゴリ: 必要 |
バージョン履歴
R2020b で導入
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.