Имя идентификатора объекта, не являющегося членом, со статической длительностью хранения или статической функцией не должно использоваться повторно в пространстве имен
Имя идентификатора объекта, не являющегося членом, со статической длительностью хранения или статической функцией не должно повторно использоваться в пространстве имен.
Пространства имен используются для сужения области идентификаторов, объявленных в этих пространствах имен. Это предотвращает ошибку этих идентификаторов с идентичными идентификаторами в других областях. При повторном использовании идентификатора со статической длительностью хранения в пределах одного пространства имен для исходных файлов один идентификатор может быть ошибочным для другого.
При повторном использовании идентификаторов 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 функции
Неустановленные и неопределенные локальные функции
Неиспользуемые типы и переменные
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Лексические конвенции |
| Категория: Обязательно, Автоматизировано |