Naw*_*waz 86 c++ standards iso namespaces
C++标准中的$ 7.3.1.1/2节描述如下:
在声明命名空间作用域中的对象时,不推荐使用static关键字; unnamed-namespace提供了一个更好的选择.
我不明白为什么一个未命名的命名空间被认为是一个更好的选择?理由是什么?我已经知道标准的内容很长一段时间,但我从未认真考虑过,即使我回答这个问题:未命名的命名空间优于静态?
它是否被认为是优越的,因为它也可以应用于用户定义的类型,正如我在回答中所描述的那样?还是有其他原因,我不知道?我问这个问题,特别是因为这是我在答案中的推理,而标准可能会考虑其他因素.
Ser*_*nov 93
static太多的东西了.一个原因可能是static已经有太多的含义(我可以算至少三个).由于匿名命名空间可以封装包括类型在内的任何内容,因此它似乎优于static解决方案.
我认为有两个原因:
static 有两个不同的含义:在类范围,它意味着由整个类共享,而在文件/功能范围它影响可见性/存储...struct,class和typedef但需要注意的是,委员会对此进行了后退:static不再标记为已弃用n3225.
| 归档时间: |
|
| 查看次数: |
34151 次 |
| 最近记录: |