第1章篇(核心概念)介绍了CXX用于表示语言边界的高级模型。本篇在此基础上,详细记录#[cxx::bridge]的语法和功能。
- extern "Rust"
-
暴露不透明的Rust类型、Rust函数、Rust方法给C++。
-
包含生命周期的函数。
- extern "C++"
-
绑定不透明的C++类型、C++函数、C++成员函数。
-
在多个桥接模块或不同crate之间共享不透明类型定义。
-
在CXX桥接中使用bindgen生成的数据结构。
-
以符合Rust孤儿规则的方式,请求在特定桥接模块中生成特定的胶水代码。
- 共享类型
-
共享结构体。
-
共享枚举。
-
使用Rust作为数据源或C++作为数据源。
- 属性
-
处理命名空间。
-
在非原生语言中为函数指定不同的名称。
- 异步函数
- 将异步C++与异步Rust集成。
- 错误处理
-
在语言边界上表示可失败性。
-
从C++访问Rust错误信息。
-
自定义捕获的异常集及其转换为Rust错误信息的方式。