【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错误信息的方式。

相关推荐
码农葫芦侠2 小时前
C++继承中虚函数调用时机问题及解决方案
c++·qt
大卫小东(Sheldon)3 小时前
智能生成git提交消息工具 GIM 发布 1.7 版本了
git·ai·rust
寻月隐君4 小时前
Rust 泛型 Trait:关联类型与泛型参数的核心区别
后端·rust·github
玉树临风江流儿4 小时前
QT收费情况
开发语言·qt
苏鑫的博客5 小时前
Rust 代理抓包工具 Lynx Proxy 开源之路
rust
黑塞1236 小时前
Qt deleteLater 延迟删除原理
qt
jingjing~6 小时前
【Qt】QTime::toString(“hh:mm:ss.zzz“) 显示乱码的原因与解决方案
java·开发语言·qt
Hello.Reader6 小时前
Rust → WebAssembly 的性能剖析全指南
前端·rust·wasm
SoniaChen336 小时前
Rust基础-part6-数组与切片-字符串
后端·rust·web3
机器视觉知识推荐、就业指导18 小时前
手动开发一个TCP客户端调试工具(一):了解Qt中TCP通信原理与核心类
网络·qt·tcp/ip