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

Разделы кода не должны быть «закомментированы» с помощью комментариев C++ -style

Описание

Определение правила

Разделы кода не должны быть «закомментированы» с помощью комментариев C++ -style.

Объяснение

Комментирование кода не является хорошей практикой. Закомментированный код может оставаться вне синхронизации с окружающим кодом, не вызывая ошибок компиляции. Позже, если вы раскомментируете код, то можете столкнуться с неожиданными проблемами.

Используйте комментарии только для объяснения аспектов кода, которые не очевидны из самого кода.

Реализация Polyspace

Чекер использует внутреннюю эвристику, чтобы обнаружить закомментированный код. Для образца такие символы, как #, ;, { или } указать комментарии, которые потенциально могут содержать код. Эти комментарии затем оцениваются по другим метрикам, чтобы определить вероятность маскировки кода как комментария. Для образца несколько последовательных слов без символа между ними уменьшают эту вероятность.

Шашка не помечает следующие комментарии, даже если они содержат код:

  • Комментарии Doxygen, начинающиеся с /// или //!.

  • Комментарии, которые повторяют один и тот же символ несколько раз, например, символ = здесь:

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

  • Комментарии к первой линии файла.

  • Комментарии, которые смешивают стиль C (/* */) и стиль C++ (//).

Чекер считает, что эти комментарии предназначены для целей документации или были внесены преднамеренно с некоторой дальновидностью.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

#include <iostream>
int getRandInt();

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

Этот пример содержит блок закомментированного кода, который нарушает правило.

Проверяйте информацию

Группа: Лексические конвенции
Категория: Консультационные
Введенный в R2020b