According to this answer, namespace-scoped static variables were undeprecated in C++11. That is, they were deprecated in C++03, because anonymous namespaces were considered better. But C++11 undeprecated them.
Why? N3296 lists the reasoning for this as:
The use of static in namespace scope should not be deprecated. Anonymous namespaces are not a sufficient replacement for the functionality.
This was apparently accepted by the committee. Why? What is it about anonymous namespaces that does not completely replace this functionality?
I would prefer answers that had some documentation or paper trail of a standards committee discussion.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…