unnamed-namespace

    3熱度

    2回答

    我有以下代碼,我不知道如何訪問此設置中的匿名命名空間內的x。請告訴我如何? #include <iostream> int x = 10; namespace { int x = 20; } int main(int x, char* y[]) { { int x = 30; // most recently defined std::

    8熱度

    3回答

    我瞭解使用未命名的名稱空間使函數和變量具有內部聯繫。未命名的名稱空間不用於頭文件;只有源文件。在源文件中聲明的類型不能在外部使用。那麼將類型放入未命名的命名空間有什麼用處? 看到這些鏈接在那裏的提到的類型可以放在未命名空間: Superiority of unnamed namespace over static? Unnamed/anonymous namespaces vs. static f

    2熱度

    2回答

    在下面的代碼中,foo應該是任何人都可以訪問的函數,但不應該是foo_helper,這就是爲什麼我將它放在匿名命名空間中的原因。很明顯,我在這個例子中包括守衛並且包括他們,但他們在那裏。 foo.h: namespace { void foo_helper() {} template <typename T, typename... Tail> void foo_

    3熱度

    1回答

    從下面stackoverflow answer,用戶說: 這意味着該變量是本地的一個翻譯單元(簡單地說, 到一個源文件),並且不能從外面訪問。這 使用靜態的其實是在當前的C++標準棄用 - ,而不是你應該使用匿名的命名空間: static int x = 0; 應該是: namespace { int x = 0; } 我不不同意匿名命名空間是首選的方法, 但現在使用靜態真的

    6熱度

    3回答

    的我一直在我公司看到這樣的代碼隨處可見: namespace { const MAX_LIMIT = 50; const std::string TOKEN = "Token"; } 我很困惑,爲什麼你在這裏需要一個匿名的命名空間。一方面,您需要本地翻譯單元MAX_LIMIT和TOKEN。但是由於const的原因,沒有匿名命名空間就已經實現了。 static const和簡單cons

    0熱度

    1回答

    我必須與命名空間,考慮在頭文件下面一個小問題定義一個全局變量: namespace A { namespace B { void SetMemberValue(double value) { _member = value; } double FunctionThatUsesMember(double a) { return a * _member; }