1 CXX主要概念概览已经涵盖了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错误消息。