Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 奇怪的C++;语法:函数调用前的类型定义_C++_Syntax - Fatal编程技术网

C++ 奇怪的C++;语法:函数调用前的类型定义

C++ 奇怪的C++;语法:函数调用前的类型定义,c++,syntax,C++,Syntax,我当时正在阅读NodeJS和V8源代码,尤其是node_contextify.cc文件,我无法理解下面这行内容: Context::Scope context_scope(debug_context); 我不明白在函数调用之前的Context::Scope是什么。我不认为它是一个声明,因为它是一个函数代码,还有一个if和其他调用 填写相关代码: ... if (debug_context.IsEmpty()) { // [... lines removed for br

我当时正在阅读NodeJS和V8源代码,尤其是
node_contextify.cc
文件,我无法理解下面这行内容:

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());
}
...
。。。
if(debug_context.IsEmpty()){
//[…为简洁起见删除了行…]
}
Context::Scope Context\u Scope(调试上下文);
MaybeLocal script=script::Compile(调试上下文,脚本源代码);
if(script.IsEmpty())
返回;//例外情况待定。
args.GetReturnValue().Set(script.ToLocalChecked()->Run());
}
...
上下文::范围的含义是什么?


进一步资料:

文件:(第268行高亮显示)

虽然我理解它是一个基本的语法问题,但我甚至不知道如何调用它,所以在谷歌、StActOp溢出或C++引用中我找不到任何结果。
问题标题是我搜索它时的一个尝试。

它正在用debug\u context初始化context\u scope变量。Context::Scope是类型(这里有一个ref页)

下面是另一篇关于使用Context::Scope的文章


顺便说一句,即使您不知道该怎么称呼它,搜索“v8context::Scope”也会显示信息。

它正在用debug\u Context初始化Context\u Scope变量。Context::Scope是类型(这里有一个ref页)

Context::Scope context_scope(debug_context);
下面是另一篇关于使用Context::Scope的文章

顺便说一句,即使您不知道该怎么称呼它,搜索“v8context::Scope”也会显示信息

Context::Scope context_scope(debug_context);
您正在声明类型为
context::scope
的对象
context\u scope
,并使用
debug\u context

Context::Scope
可以是在类或结构中定义的类型,例如:

class Context {
public:
    using Scope = int;
    ....
}
或者,
Context::Scope
可以是命名空间中定义的类型,例如:

namespace Context {
    using Scope = int;
    ...
}
您正在声明类型为
context::scope
的对象
context\u scope
,并使用
debug\u context

Context::Scope
可以是在类或结构中定义的类型,例如:

class Context {
public:
    using Scope = int;
    ....
}
或者,
Context::Scope
可以是命名空间中定义的类型,例如:

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

它是名称空间。作用域是在命名空间上下文中定义的类型。有关更多信息,请参阅。您正在查找。谢谢您,Ken和Wong!我知道名称空间,但不知道这种初始化@jdigital已经回答了它=)它的名称空间。作用域是在命名空间上下文中定义的类型。有关更多信息,请参阅。您正在查找。谢谢您,Ken和Wong!我知道名称空间,但不知道这种初始化@jdigital已经回答了它=)谢谢!在你的帮助下,我发现了很多。我不知道如何添加相关问题,但我认为语法部分与类似。是的,代码正在初始化堆栈上的对象。谢谢!在你的帮助下,我发现了很多。我不知道如何添加相关问题,但我认为语法部分与类似。是的,代码正在初始化堆栈上的对象。也谢谢!然而,由于提供了额外的信息,接受的答案更适合我的情况。无论如何,我为你点击了+1,但是我的排名很低,+1不能公开显示=/理解,我感谢你的回答:)也谢谢你!然而,由于提供了额外的信息,接受的答案更适合我的情况。无论如何,我为您单击了+1,但我的排名很低,+1不公开可见=/Understand,我感谢您的回复:)