tidy - misc-use-anonymous-namespace — Extra Clang Tools 22.0.0git documentation (original) (raw)

Finds instances of static functions or variables declared at global scope that could instead be moved into an anonymous namespace.

Anonymous namespaces are the “superior alternative” according to the C++ Standard. static was proposed for deprecation, but later un-deprecated to keep C compatibility [1]. static is an overloaded term with different meanings in different contexts, so it can create confusion.

The following uses of static will not be diagnosed:

Examples:

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

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

[1] Undeprecating static