簡體   English   中英

具有內部鏈接的命名命名空間

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM