- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
根据this answer , 命名空间范围的静态变量在 C++11 中未被弃用。也就是说,它们在 C++03 中已被弃用,因为匿名命名空间被认为更好。但是 C++11 不推荐使用它们。
为什么? N3296 lists the reasoning for this如:
The use of static in namespace scope should not be deprecated. Anonymous namespaces are not a sufficient replacement for the functionality.
这显然被委员会接受了。为什么?没有完全取代这个功能的匿名命名空间是什么?
我更喜欢有标准委员会讨论的文档或书面记录的答案。
最佳答案
This is a more in-depth explanation.
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, especially in light of C compatibility concerns. The Committee should consider removing the deprecation.
我知道的一个问题是匿名命名空间不能专门化命名空间 block 之外的模板。这就是引入 inline namespace
的原因,尽管 static
也可以。此外,static
与宏配合得很好。
关于c++ - 根据标准委员会的说法,为什么匿名命名空间不足以替代命名空间静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460327/
我正在创建一个使用 svg 作为::after 内容的标签。我希望通过使用绝对定位将 svg 移动到主要内容下方并将其设置为 bottom: 0,但是如果我也将 margin-bottom 设置为 -
我是一名优秀的程序员,十分优秀!