2016-11-18 30 views
1

前に、私はNodeJSとV8ソース、particulary 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++リファレンスで結果を見つけることができませんでした。

質問タイトルは、検索時の私の試みの1つです。

+0

それは名前空間です。スコープは、名前空間コンテキスト内で定義された型です。詳細については、http://en.cppreference.com/w/cpp/language/namespaceを参照してください。 –

+0

あなたは['scope resolution operator'](https://msdn.microsoft.com/en-us/library/b451xz31.aspx)を探しています。 –

+0

ありがとう、ケンとウォン!私は名前空間について知っていましたが、この種の初期化については知りませんでした。 @jdigitalが答えました=) –

答えて

3

これは、debug_contextを使用してcontext_scope変数を初期化しています。コンテキスト::スコープタイプです

はここで「V8を探して、あなたがそれを呼び出すために何を知っていない場合でも、How to correctly use Context::Scope ?

ところで文脈::スコープを使用して上の別の記事です(ここでは1 REFページhttp://bespin.cz/~ondras/html/classv8_1_1Context_1_1Scope.htmlです) Context :: Scope "が情報を表示します。

+0

ありがとう!あなたの助けを借りて私はそれについて多くを見つけました=)。関連する質問を追加する方法はわかりませんが、構文に関する部分は[this StackOverflow question](http://stackoverflow.com/questions/1764831/c-object-without-new)に似ていると思います。 –

+0

はい、コードはスタック上のオブジェクトを初期化しています。 – jdigital

2
Context::Scope context_scope(debug_context); 

あなたがタイプContext::Scopeのオブジェクトcontext_scopeを宣言し、debug_context
Context::Scopeでそれを初期化するには、例えば、クラスや構造体で定義されたタイプが考えられます。

class Context { 
public: 
    using Scope = int; 
    .... 
} 

または、Context::Scope可能性があり次のような名前空間内に定義された型:

namespace Context { 
    using Scope = int; 
    ... 
} 
+0

ありがとうございます!しかし、受け入れられた答えは、提供された追加情報で私のケースに合っています。とにかく、+1をクリックしましたが、順位が低く、+1が公開されていません=/ –

+0

あなたの感想を理解しています:) – LWimsey

関連する問題