【发布时间】:2020-06-12 06:39:57
【问题描述】:
我想通过 C++ 创建 Rust 结构的实例。 C++ 有 main 函数,Rust 代码用作库。
为了实现这一点,我需要一种将实例存储在某种列表中并将列表的索引返回给 C++ 的方法,这样它就可以像指向 Rust 结构的指针一样工作。
Rust 不支持静态成员,因此我无法创建 static rust_instances: std::vec::Vec = std::vec::Vec::new() 来保存 Rust 结构。
这里最好的选择是什么?
我已经搜索并找到了一些模拟静态元素的解决方法,但我想知道是否有更好的方法来解决这个问题。
【问题讨论】:
-
你的 Rust 代码有 C 或 C++ 接口吗?如果是这样,你就不能这样称呼吗?
-
在 Rust 内部也有像
lazy_static这样的东西可以做这样的事情。 -
@tadman 我的 Rust 代码有一个 C 接口。但是如果我想在 Rust 上创建多个结构实例怎么办?我在哪里存放它们? main 函数在 C++ 端,所以 Rust 需要静态存储东西
-
主要功能在 C++ 端,所以 Rust 需要静态存储东西 - 这对我来说毫无意义。为什么在 C++ 中使用 Rust 意味着您需要将内容存储在静态内存中,而不是使用堆栈和堆?
标签: rust