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

Если идентификатор ссылается на тип, он также не должен относиться к объекту или функции в тех же возможностях

Описание

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

Если идентификатор ссылается на тип, он также не должен относиться к объекту или функции в тех же возможностях.

Объяснение

Для совместимости с C, на C++, вам разрешено использовать то же имя для типа и объекта или функции. Однако повторное использование имени может вызвать путаницу во время разработки или рассмотрения кода.

Реализация Polyspace

Если идентификатор является функцией, и функция объявлена и определена, то о нарушении сообщается только один раз.

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

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

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

Примеры

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

struct vector{
    int x;
    int y;
    int z;
}vector; //Noncompliant

В этом примере имя vector используется как для структурированного типа данных, так и для объекта этого типа.

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

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