[英]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.