您的位置:首页 > 科技 > 能源 > 中国互联网协会新春茶话会_营销推广的渠道_博客程序seo_郑州网站seo顾问

中国互联网协会新春茶话会_营销推广的渠道_博客程序seo_郑州网站seo顾问

2025/3/13 4:09:13 来源:https://blog.csdn.net/weixin_43219667/article/details/146059332  浏览:    关键词:中国互联网协会新春茶话会_营销推广的渠道_博客程序seo_郑州网站seo顾问
中国互联网协会新春茶话会_营销推广的渠道_博客程序seo_郑州网站seo顾问

除了所有基本类型(如 i32 <=> int32_t),以下常见类型可以用于共享结构体的字段以及外部函数的参数和返回值。

Rust 中的名称C++ 中的名称限制条件
Stringrust::String
&strrust::Str
&[T]rust::Slice不能包含不透明的 C++ 类型
&mut [T]rust::Slice不能包含不透明的 C++ 类型
CxxStringstd::string不能按值传递
Boxrust::Box不能包含不透明的 C++ 类型
UniquePtrstd::unique_ptr不能包含不透明的 Rust 类型
SharedPtrstd::shared_ptr不能包含不透明的 Rust 类型
[T; N]std::array<T, N>不能包含不透明的 C++ 类型
Vecrust::Vec不能包含不透明的 C++ 类型
CxxVectorstd::vector不能按值传递,不能包含不透明的 Rust 类型
*mut T, *const TT*, const T*带有裸指针参数的函数必须声明为 unsafe 才能调用
fn(T, U) -> Vrust::Fn<V(T, U)>目前仅支持从 Rust 传递到 C++
Resultthrow/catch仅允许作为返回类型

C++ 中 rust 命名空间的 API 由 CXX GitHub 仓库中的 include/cxx.h 文件定义。在使用这些类型时,你需要在 C++ 代码中包含此头文件。当使用 Cargo 和 cxx-build crate 时,可以通过 #include “rust/cxx.h” 包含此头文件。

rust 命名空间还提供了表中所有类型的小写别名,适用于偏好这种风格的代码库。例如,rust::String 和 rust::Vec 也可以写成 rust::string 和 rust::vec 等。

待实现的绑定
以下类型计划在“不久的将来”支持,但目前尚未实现。这些类型的实现预计不会太困难,但需要为每种类型在其非原生语言中设计一个良好的 API。

Rust 中的名称C++ 中的名称
BTreeMap<K, V>待定
HashMap<K, V>待定
Arc待定
Option待定
待定std::map<K, V>
待定std::unordered_map<K, V>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com