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

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

Описание

Примечание

Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.

Управляйте определением

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

Объяснение

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

Реализация Polyspace

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

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

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

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

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

Уже используемый в качестве имени тега (fileNamelineNumber).

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

Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.

Примеры

развернуть все

void f1() {
    class floatVar {};
}

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

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

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

Группа: лексические соглашения
Категория: необходимый

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Введенный в R2013b