Rob*_*son 17 c++ scope namespaces
替换这样的东西是合法的:
namespace foo {
namespace bar {
baz();
}
}
Run Code Online (Sandbox Code Playgroud)
用这样的东西:
namespace foo::bar {
baz();
}
Run Code Online (Sandbox Code Playgroud)
?
ski*_*ear 37
您可以将名称空间组合成一个名称并使用新名称(即Foobar).
namespace Foo { namespace Bar {
void some_func() {
printf("Hello World.");
}
}}
namespace Foobar = Foo::Bar;
int main()
{
Foobar::some_func();
}
Run Code Online (Sandbox Code Playgroud)
NuS*_*ler 14
不,这不对.而不是一堆缩进的嵌套命名空间,将它们放在同一行上当然是有效的:
namespace Foo { namespace Bar { namespace YetAnother {
// do something fancy
} } } // end Foo::Bar::YetAnother namespace
Run Code Online (Sandbox Code Playgroud)
更新:
namespace Foo::Bar::YetAnother {
// do something even fancier!
}
Run Code Online (Sandbox Code Playgroud)
对于任何想知道的人,namespace foo::bar
从C++ 17开始支持该表单.参考文献:
像something::someting_else
C++中的限定名称只能用于引用之前已声明过的实体.您不能使用此类名称来介绍以前未知的内容.即使之前已经声明了嵌套命名空间,扩展该命名空间也被视为"引入新内容",因此不允许使用限定名称.
您可以使用此类名称来定义先前在命名空间中声明的函数
namespace foo {
namespace bar {
int baz();
}
}
// Define
int foo::bar::baz() {
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
但没有声明扩展现有命名空间的新命名空间.
归档时间: |
|
查看次数: |
19273 次 |
最近记录: |