Проект не должен содержать энергонезависимые переменные POD, имеющие только одно использование
Проект не должен содержать энергонезависимых переменных POD, имеющих только одно использование.
При использовании энергонезависимой переменной с типом «Простые старые данные» (int, doubleи т. д.) только один раз, переменную можно заменить постоянным литералом. Использование переменной указывает на то, что вы намеревались использовать эту переменную несколько раз и что в коде может быть ошибка программирования. Другие виды использования энергонезависимой переменной могут быть опущены или неправильно использованы другие переменные в предполагаемых точках использования.
Средство проверки помечает локальные и статические переменные, имеющие область функций (локально статическую) и область файлов, которые используются только один раз. Проверка рассматривает const- квалифицированные глобальные переменные без extern спецификатор как статические переменные с областью файла.
Средство проверки считает эти случаи использования как одно использование энергонезависимой переменной:
Явная инициализация с использованием постоянного литерала или возвращаемого значения функции
Назначение
Ссылка на переменную, такую как операция чтения
Назначение адреса переменной указателю
Если адрес переменной назначен указателю, средство проверки предполагает, что указатель может быть удален позже и не помечает переменную.
Некоторые объекты предназначены для использования их семантикой только один раз. Polyspace ® не помечает ни одного использования этих объектов:
lock_guard
scoped_lock
shared_lock
unique_lock
thread
future
shared_future
Если используются нестандартные объекты, которые обеспечивают те же функциональные возможности, что и объекты из предыдущего списка, Polyspace может пометить одиночное использование нестандартных объектов. Оправдать их одиночное использование с помощью комментариев.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Вопросы, не зависящие от языка |
| Категория: Обязательно, Автоматизировано |