bugprone-reserved-identifier

cert-dcl37-ccert-dcl51-cpp 将此作为该检查的别名。

检查对保留供实现使用的标识符的用法。

C 和 C++ 标准都保留以下名称供此类使用:

C 标准还保留以双下划线开头的名称,而 C++ 标准将此加强为保留任何位置出现双下划线的名称。

违反上述命名规则会导致未定义的行为。

namespace NS {
  void __f(); // name is not allowed in user code
  using _Int = int; // same with this
  #define cool__macro // also this
}
int _g(); // disallowed in global namespace only

该检查也可以反转,即它可以配置为标记任何不是保留标识符的标识符。此模式供例如标准库实现者使用,以确保他们不会侵犯用户命名空间。

该检查还没有检查其他保留名称,例如与语言关键字相同的宏名称,以及语言标准专门保留的名称,例如 C++ 的“僵尸名称”和 C 未来库方向。

此检查对应于 CERT C 编码标准规则 DCL37-C。不要声明或定义保留标识符,以及其 C++ 对等项, DCL51-CPP。不要声明或定义保留标识符

选项

Invert

如果为 true,则反转检查,即标记不是保留的名称。默认值为 false

AllowedIdentifiers

检查忽略的正则表达式的分号分隔列表。默认情况下为空列表。