我讀的NodeJS和V8源,格外node_contextify.cc
文件,我無法理解下面一行:奇怪的C++語法:函數調用之前類型定義
Context::Scope context_scope(debug_context);
我不明白那是什麼Context::Scope
之前似乎是一個函數調用。我不認爲這是一個聲明,因爲它是一個功能代碼,連同一個if
和其他調用。
完成相關代碼:
...
if (debug_context.IsEmpty()) {
// [... lines removed for brevity ...]
}
Context::Scope context_scope(debug_context);
MaybeLocal<Script> script = Script::Compile(debug_context, script_source);
if (script.IsEmpty())
return; // Exception pending.
args.GetReturnValue().Set(script.ToLocalChecked()->Run());
}
...
那是什麼Context::Scope
的含義是什麼?
進一步的信息:
文件:node/node_contextify.cc(線268被突出顯示)。
雖然我知道這是一個關於語法的基本問題,我甚至不知道如何調用它,所以我無法在Google,StackOverflow或C++參考中找到任何結果。
問題標題是我在搜索時的一個嘗試。
它是命名空間。範圍是在名稱空間上下文中定義的類型。有關更多信息,請參見http://en.cppreference.com/w/cpp/language/namespace。 –
您正在尋找['範圍解析運算符](https://msdn.microsoft.com/en-us/library/b451xz31.aspx)。 –
謝謝你,肯和王!我知道命名空間,但不涉及這種初始化。 @jdigital已經回答了=) –