gpt4 book ai didi

c++ - 弃用 static 关键字...不再?

转载 作者:IT老高 更新时间:2023-10-28 12:01:08 30 4
gpt4 key购买 nike

在 C++ 中,可以在翻译单元中使用 static 关键字来影响符号(变量或函数声明)的可见性。

在 n3092 中,这已被弃用:

Annex D.2 [depr.static]
The use of the static keyword is deprecated when declaring objects in namespace scope (see 3.3.6).

在 n3225 中,这已被删除。

only article I could find有点不正式。

它确实强调了,为了与 C 的兼容性(以及将 C 程序编译为 C++ 的能力),弃用是令人讨厌的。但是,将 C 程序直接编译为 C++ 可能已经是一种令人沮丧的体验,因此我不确定是否值得考虑。

有谁知道为什么改了?

最佳答案

C++ Standard Core Language Defect Reports and Accepted Issues, Revision 941012 下。不赞成使用静态他们指出:

Although 7.3.1.1 [namespace.unnamed] states that the use of the static keyword for declaring variables in namespace scope is deprecated because the unnamed namespace provides a superior alternative, it is unlikely that the feature will be removed at any point in the foreseeable future.

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

关于c++ - 弃用 static 关键字...不再?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726570/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com