【发布时间】:2015-01-15 23:50:36
【问题描述】:
这个问题很简单,我可以在另一个命名空间中声明一个命名空间吗?如果是这样,这个命名空间的正确术语是什么,它会被称为“内部命名空间”还是“嵌套命名空间”,或者可能是完全不同的东西?
【问题讨论】:
-
@icemanind 不,OP 只要求嵌套命名空间,而不是如何将对象放入其中(尽管我也一直在回答这个问题)。
标签: c++ namespaces
这个问题很简单,我可以在另一个命名空间中声明一个命名空间吗?如果是这样,这个命名空间的正确术语是什么,它会被称为“内部命名空间”还是“嵌套命名空间”,或者可能是完全不同的东西?
【问题讨论】:
标签: c++ namespaces
“我可以在另一个命名空间中声明一个命名空间吗?”
是的,您可以随意嵌套命名空间
namespace A {
struct thingA;
void funcA();
namespace B {
struct thingC;
void funcB();
namespace C {
struct thingC;
void funcC();
}
}
}
并使用::(作用域)运算符参考上述声明:
A::thingA thingA;
A::funcA();
A::B::thingB thingB;
A::B::funcB();
A::B::C::thingC thingC;
A::B::C::funcC();
“这个命名空间的正确术语是什么,它会被称为“内部命名空间”还是“嵌套命名空间”,或者可能完全不同?”
而且是的,它通常被称为 “嵌套命名空间”。
【讨论】:
std::chrono 之类的东西应该会很明显。