这是C的标准吗?在C#中,我喜欢声明嵌套的命名空间,如下所示:
namespace A.B
{
class X
{
};
}
替代方案就是这个,这有点丑陋:
namespace A
{
namespace B
{
class X
{
};
}
}
在C中,我想看看它是否有类似的功能.我最终找到了这个作品:
namespace A::B
{
class Vector2D
{
}
}
请注意::.
我很好奇这是标准C还是MS功能.我找不到任何文件.我的古老的C 98参考书没有提到它,所以我想知道它是微软的扩展还是新功能.
解决方法:
是的,这是legal C++ 17语法.但是,它不是嵌入式命名空间,而是嵌套命名空间.
namespace
ns_name::
name (8) (since C++17)[…]
8) nested namespace definition:
namespace A::B::C { ... }
is equivalent tonamespace A { namespace B { namespace C { ... } } }
.