I have touch upon the many uses of the keyword static in C when I discovered yet another usage of the
static keyword in C99 in my post about static array indices in parameter declarations. That usage is not legal in C++1, and C++ has actually removed the need to use
static for one use case: to specify internal linkage.
From the C++11 standard N3242 (draft) §3.5.4:
An unnamed namespace or a namespace declared directly or indirectly within an unnamed namespace has internal linkage. All other namespaces have external linkage.
In other words, this code
is equivalent to
If the C++ Standards Committee ever actually removes this usage 2, it would be a rare example of actually decreasing the overloading of