c++ - 命名空间 v8 和命名空间 v8::internal 之间有什么区别?

标签 c++ v8

在阅读 v8 的源代码时,我有一部分不是很了解。

  v8::Isolate::CreateParams create_params;
  create_params.array_buffer_allocator =
      v8::ArrayBuffer::Allocator::NewDefaultAllocator();
  v8::Isolate* isolate = v8::Isolate::New(create_params);

我跟踪了 v8::Isolate::New 的实现,然后我发现了以下代码:

// static
Isolate* Isolate::Allocate() {
  return reinterpret_cast<Isolate*>(i::Isolate::New());
}

因为我多读了一点代码,我知道“i”的意思是“内部”,但我不确定其余部分。 v8::Isolate 和 v8::internal::Isolate 兼容吗?

最佳答案

通常,C++ 库在需要声明/定义库使用但不应该使用的东西时使用internal(通常也称为detail)命名空间供用户使用。

这是一种类似于“图书馆链接”的方式。希望如果/当模块到达 C++ 时,我们将有更好的方法来处理这个问题。

关于c++ - 命名空间 v8 和命名空间 v8::internal 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54606331/

相关文章:

c++ - 背包问题根据每单位重量的利润对数组进行排序

c++ - *(ptr)[j++] 的替代符号?

c++ - 有序完成的异步线程池

javascript - 如何检查 NodeJS 中的 JSON 是否为空?

node.js - NodeJS V8 没有进行正确的垃圾收集

c++ - 如何实现类似于 Microsoft Excel 的 "record macro"类功能?

c++ - 如何在方法中返回 C++ 数组指针

javascript 引擎 v8 内联缓存

c++ - Node.js C++ Addon - 设置数组的特定索引

node.js - 如何读取 nodejs 内部分析器滴答处理器输出