misc-use-anonymous-namespace

查找在全局作用域声明的 static 函数或变量的实例,这些实例可以移入匿名命名空间。

根据 C++ 标准,匿名命名空间是“更优的选择”。static 曾经被提议弃用,但后来取消了弃用,以保持 C 兼容性 [1]。static 是一个在不同上下文中具有不同含义的重载术语,因此可能会造成混淆。

以下 static 的用法将不会被诊断

示例

// Bad
static void foo();
static int x;

// Good
namespace {
  void foo();
  int x;
} // namespace

[1] 取消弃用 static