为了账号安全,请及时绑定邮箱和手机立即绑定

不赞成使用static关键字…不再吗?

不赞成使用static关键字…不再吗?

C++
犯罪嫌疑人X 2019-10-18 14:07:25
在C ++中,可以static在翻译单元中使用关键字来影响符号(变量或函数声明)的可见性。在n3092中,已弃用:附件D.2 [depr.static]在命名空间范围内声明对象时,不建议使用static关键字(请参阅3.3.6)。在n3225中,已将其删除。在我能找到的唯一的文章是有点非正式的。它确实强调了,为了与C兼容(以及将C程序编译为C ++的能力),弃用是令人讨厌的。但是,直接将C程序编译为C ++可能已经令人沮丧,因此我不确定是否值得考虑。有谁知道为什么要更改?
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

在《C ++标准核心语言缺陷报告和已接受的问题》中,修订版94位于1012下。不赞成使用静态 `他们指出:


尽管7.3.1.1 [namespace.unnamed]指出,由于未命名的命名空间提供了更好的选择,所以不建议使用static关键字在命名空间范围内声明变量,但在可预见的将来,该功能不太可能在任何时候被删除。 。


基本上说,弃用static并没有任何意义。它永远不会从C ++中删除,它仍然很有用,因为如果您只想声明具有内部链接的函数或对象,则不需要使用未命名空间的样板代码。



查看完整回答
反对 回复 2019-10-18
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

不论是否赞成,删除此语言功能都会破坏现有的代码并惹恼人们。


整个静态弃用只是沿着“匿名名称空间比静态更好”和“引用是更好的指针”的想法。大声笑。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 488 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信