在C ++ 2003中,不推荐使用名称空间 - static
:
[C++03: 7.3.1.1/2]:
不推荐使用static
关键字 声明命名空间范围内的对象(见附件D);该 unnamed-namespace 提供了一个更好的选择。
我无法找到C ++ 2011中存在任何此类子句的位置(建议不引用),而7.1.1
似乎并未禁止名称空间 - static
(如果有,则会表明该功能最终已从语言中删除);但是,C.2
中没有列出这两种情况(2003年和2011年之间存在重大差异)。
名称空间 - static
是否未被批准?
答案 0 :(得分:15)
未弃用的命名空间 - static
为proposed and accepted for n3296:
ID: FI 6
参考: D.2 [depr.static]¶第1段 注释:不应弃用在命名空间作用域中使用static。匿名命名空间不足以替代功能 提议的解决方案: 完全打击[depr.static]。
所有者: CWG
问题: 1012
处置: 已接受
事实上,条款C(关于兼容性)没有列出对条款D(在弃用时)所做的任何更改,因此很难说“一目了然”。 但是,不,命名空间 - static
在C ++ 11中不再被弃用。