C++ 标准中的 $7.3.1.1/2 部分内容如下:
在命名空间范围内声明对象时,不推荐使用 static 关键字;unnamed-namespace 提供了一个更好的选择。
我不明白为什么一个未命名的命名空间被认为是一个更好的选择?理由是什么?我很早就知道该标准的内容,但我从未认真考虑过它,即使我在回答这个问题时也是如此:未命名命名空间优于静态?
正如我在回答中所描述的,它是否被认为是优越的,因为它也可以应用于用户定义的类型?还是还有其他一些我不知道的原因?我问这个,特别是因为这是我在回答中的推理,而标准可能还有其他考虑。