命名空间 v8 和命名空间 v8::internal 有什么区别?

What's difference between namespace v8 and namespace v8::internal?

本文关键字:v8 命名空间 区别 什么 internal      更新时间:2023-10-16

当我阅读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::隔离和 v8::内部::隔离兼容吗?

通常

,C++库在需要声明/定义库使用但不应由用户使用的内容时,都会使用 internal(通常也称为detail(命名空间。

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