【发布时间】:2011-04-05 22:20:59
【问题描述】:
标准不允许这样的代码:
namespace Hello::World {
//Things that are in namespace Hello::World
}
而是需要
namespace Hello { namespace World {
//Things that are in namespace Hello::World
}}
原因是什么?是当时根本没有想到,还是有特定的原因不包括在内?
似乎第一种语法更直接地表达了应该在哪个命名空间中,因为声明模仿了以后代码中命名空间的实际使用。如果您不幸使用“哑”括号计数缩进工具,它也会减少缩进。
【问题讨论】:
-
@AndreyT:我不是在问它是否合法,我知道它是非法的。我在问为什么这是非法的。
-
投票“接近 - 不是真正的问题”的人缺乏阅读理解能力。这是一个具有客观答案且与编程相关的特定问题。
-
@Steve:实际上,我认为它更易于阅读是我希望看到这样一个功能的主要原因。
-
啊哈!现在这个问题也是主观和争论的!现在,如果我们能让两个人投票结束,因为 off-topic 和 过于本地化......
-
这包含在 C++17 中! open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html
标签: c++ namespaces language-design rationale