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

相关推荐
风闲12174 小时前
Qt源码编译记录
开发语言·qt
全栈陈序员5 小时前
基于Rust 实现的豆瓣电影 Top250 爬虫项目
开发语言·爬虫·rust
百锦再5 小时前
第17章 模式与匹配
开发语言·后端·python·rust·django·内存·抽象
864记忆5 小时前
Qt c++的基础语法有哪些?
开发语言·c++·qt
江公望5 小时前
Qt QHostInfo::lookupHost()函数,10分钟讲清楚
开发语言·qt·qml
JosieBook7 小时前
【Rust】基于Rust + WebAssembly;实现人机记忆井字棋游戏(人机对战)
游戏·rust·wasm
胡斌附体7 小时前
qt showevent引发的问题
qt·qt creator·问题排查·思路·报警·showevent·重复打印
Dneccc7 小时前
Qt5配置MSVC2017
开发语言·qt
江公望7 小时前
Qt QByteArray类型,10分钟讲清楚
开发语言·c++·qt
小灰灰搞电子7 小时前
Qt Sensors 传感器框架详解
开发语言·qt