【CXX】5 桥接模块参考

第1章篇(核心概念)介绍了CXX用于表示语言边界的高级模型。本篇在此基础上,详细记录#cxx::bridge的语法和功能。

  1. extern "Rust"
  • 暴露不透明的Rust类型、Rust函数、Rust方法给C++。

  • 包含生命周期的函数。

  1. extern "C++"
  • 绑定不透明的C++类型、C++函数、C++成员函数。

  • 在多个桥接模块或不同crate之间共享不透明类型定义。

  • 在CXX桥接中使用bindgen生成的数据结构。

  • 以符合Rust孤儿规则的方式,请求在特定桥接模块中生成特定的胶水代码。

  1. 共享类型
  • 共享结构体。

  • 共享枚举。

  • 使用Rust作为数据源或C++作为数据源。

  1. 属性
  • 处理命名空间。

  • 在非原生语言中为函数指定不同的名称。

  1. 异步函数
  • 将异步C++与异步Rust集成。
  1. 错误处理
  • 在语言边界上表示可失败性。

  • 从C++访问Rust错误信息。

  • 自定义捕获的异常集及其转换为Rust错误信息的方式。

相关推荐
小灰灰搞电子9 小时前
Rust+Slint 实现左右伸缩式图片浏览器源码分享
rust·slint·图片伸缩浏览器
_林枭_9 小时前
ZW3D二次开发_原生表单_如何设置表单左上角图标
qt·zw3d
Quz15 小时前
QML 快捷键篇:基础快捷键与组合键序列
qt·qml
≮傷£≯√18 小时前
Qt 面试(一)
qt·ffmpeg·音视频
传奇开心果编程19 小时前
【Rust入门知识点学与练】第11课:HashMap 键值对集合
开发语言·学习·rust
yume_sibai19 小时前
03-Rust 函数式编程特性(闭包 + Iterator + Option/Result + 链式调用)
开发语言·后端·rust
西西弗Sisyphus20 小时前
Qt 分类导航区的实现
开发语言·qt
galaxy_strive21 小时前
Qt C++插件化编写项目(1)
开发语言·c++·qt
传奇开心果编程21 小时前
【Rust入门知识点学与练】第13课:枚举 Enum
开发语言·学习·rust
小灰灰搞电子1 天前
Rust+Slint 实现点击水波纹扩散效果按钮源码分享
rust·slint·水波纹按钮