C++ 奇怪的C++;语法:函数调用前的类型定义
我当时正在阅读NodeJS和V8源代码,尤其是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
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,我感谢您的回复:)