MISRA C++:2008 Rule 2-10-4

Класс, объединение или имя перечисления (включая проверку, если она имеется) должны быть уникальным идентификатором

Описание

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

Имя класса, объединения или перечисления (включая проверку, если таковая имеется) должно быть уникальным идентификатором.

Объяснение

Объявления идентификаторов правил, где имя идентификатора совпадает с именем ранее объявленного класса, объединения или typedef. Когда вы используете идентичные идентификаторы, можно перепутать их.

Реализация Polyspace

Проверка не помечает ситуации, когда конфликтующие имена происходят в разных пространствах имен.

Bug Finder и Code Prover по-разному проверяют это правило кодирования. Анализы могут привести к различным результатам.

Дополнительное сообщение в отчете

Имя класса, объединения или перечисления (включая проверку, если таковая имеется) должно быть уникальным идентификатором.

Идентификатор tagName не следует повторно использовать.

Уже используется в качестве имени тега (fileName lineNumber).

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

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

Примеры

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

void f1() {
    class floatVar {};
}

void f2() {
    float floatVar; //Noncompliant
}

В этом примере объявление floatVar в f2() конфликтует с объявлением класса в f1().

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

Группа: Лексические конвенции
Категория: Требуемая
Введенный в R2013b