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