在C ++ 11中,namespace-`static仍然被弃用吗?

时间:2011-12-10 21:53:30

标签: c++ c++11

  

可能重复:
  Deprecation of the static keyword… no more?

在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是否未被批准?

1 个答案:

答案 0 :(得分:15)

未弃用的命名空间 - staticproposed and accepted for n3296

  

ID: FI 6
  参考: D.2 [depr.static]¶第1段   注释:不应弃用在命名空间作用域中使用static。匿名命名空间不足以替代功能   提议的解决方案: 完全打击[depr.static]。
  所有者: CWG
  问题: 1012
  处置: 已接受

事实上,条款C(关于兼容性)没有列出对条款D(在弃用时)所做的任何更改,因此很难说“一目了然”。 但是,不,命名空间 - static在C ++ 11中不再被弃用。