[英]Named namespace with internal linkage
[@PasserBy发现我的问题是重复的。 问题可以结束,谢谢。]
如何获得具有内部链接的命名命名空间? 也就是说,如何才能使命名的命名空间对外部源文件不可见? 我要这个:
static namespace N {
int foo() {return 10;}
int bar() {return 20;}
}
但是,遗憾的是,C ++无法识别static namespace
。
将命名的命名空间包含在未命名的命名空间中:
namespace {
namespace N {
int foo() {return 10;}
int bar() {return 20;}
}
}
int sum()
{
return N::foo() + N::bar();
}
这是有效的,因为未命名的命名空间会自动将其成员(在这种情况下唯一的成员是名称空间N
)导出到周围的作用域 - 而不会将成员公开给其他源文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.