メインコンテンツ

MISRA C++:2008 Rule 2-7-3

Sections of code should not be "commented out" using C++-style comments

説明

ルール定義

Sections of code should not be "commented out" using C++-style comments. 1

根拠

コードのコメント アウトはお勧めしません。コメント アウトされたコードは、コンパイル エラーにはならず、周囲のコードと非同期のままになる可能性があります。後で、そのコードのコメントを解除すると、予期せぬ問題が発生する可能性があります。

コメントは、コード自体では明らかでないコードの側面を説明するためにのみ使用してください。

Polyspace 実装

チェッカーは内部でヒューリスティックな方法を使用してコメントアウトされたコードを検出します。たとえば、#;{} などの文字はコードを含む可能性があるコメントを示します。このようなコメントは他のメトリクスに対して評価されて、コメントになりすましたコードである可能性を判断します。たとえば、数個の単語が間に記号をはさまずに連続していれば、この可能性は減少します。

チェッカーは、コードを含んでいても次のコメントに対してはフラグを設定しません。

  • /// または //! で始まる doxygen コメント。

  • 同じ記号を複数個繰り返すコメント。たとえば、次の場合の = 記号。

    // =====================================
    // A comment
    // =====================================*/

  • ファイルの最初の行のコメント。

  • C スタイル (/* */) と C++ スタイル (//) が混在したコメント。

チェッカーは、このようなコメントがドキュメンテーション目的か、または事前に考慮されたうえで意図的に入力されたものと見なします。

トラブルシューティング

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

すべて展開する

#include <iostream>
int getRandInt();

// Function to print random integers
void printInteger() {
    // int val = getRandInt(); 
    // val++; 
    // std::cout << val;     
    std::cout << getRandInt();
}

この例には、ルールに違反するコメント アウトされたコードの 1 つのブロックが含まれています。

チェック情報

グループ: 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.