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

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

Описание

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

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

Объяснение

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

Реализация Polyspace

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

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

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

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

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

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

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

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

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

void f1() {
    class floatVar {};
}

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

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

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

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