Имя идентификатора объекта, не являющегося членом, со статической длительностью хранения или статическими функциями не должно повторно использоваться в пространстве имен
Имя идентификатора объекта, не являющегося членом, со статической длительностью хранения или статическими функциями не должно повторно использоваться в пространстве имен.
Вы используете пространства имен, чтобы сузить возможности идентификаторов, которые вы объявляете в этих пространствах имен. Это препятствует ошибке этих идентификаторов с идентичными идентификаторами в других возможностях. Если вы повторно используете идентификатор со статической длительностью хранения в том же пространстве имен между исходными файлами, можно ошибиться с одним идентификатором для другого.
Когда вы повторно используете идентификаторы, Polyspace® помечает последнее использование идентификатора, если он находится в одном модуле преобразования. Если идентификаторы находятся в отдельных файлах, идентификатор в последнем пути файла по алфавитному порядку помечается.
Однако, если вы повторно используете идентификатор, но объявляете только один образец идентификатора с ключевым словом static
этот идентификатор помечен независимо от порядка объявления идентификаторов.
Polyspace не вызывает нарушений, если вы объявляете идентификатор в пространстве имен и повторно используете этот идентификатор в том же пространстве имен, но в вложенном или встроенном пространстве имен. Для образца никакое нарушение не возникает на reusedVar
в этом фрагменте кода.
//file1.cpp namespace foo { static int reusedVar; //resuedVar has static storage duration } //file2.cpp namespace foo { void func(); namespace nested_foo { float reusedVar; } inline namespace inlined_foo { char reusedVar; } }
Шашка не поднята на неиспользованном коде, таком как
Неинстантированные шаблоны
Незакрытые static
или extern
функции
Незавершенные и неопределенные локальные функции
Неиспользованные типы и переменные
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Лексические конвенции |
Категория: Необходимый, Автоматизированный |