7.3.1 错误处理:QR 示例
01-错误处理:QR 示例 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
7.3.1 错误处理:QR 示例
QR 码生成器是一个示例:用布尔值传达成功与失败,且成功结果可以跨 FFI 边界传递:
| |
学员可能对
out_qr_size输出的语义感到好奇。这不是向量的大小,而是 QR 码的大小(而且老实说有点多余——它是向量大小的平方根)。值得指出在调用 Rust 函数之前初始化
out_qr_size的重要性。创建指向未初始化内存的 Rust 引用会导致未定义行为(与 C++ 不同,在 C++ 中只有解引用此类内存的行为才导致 UB)。若学员问到
Pin,则解释为何 CXX 对指向 C++ 数据的可变引用需要它:答案是 C++ 数据不能像 Rust 数据那样移动,因为它可能包含自引用指针。