技术栈
cxx
Source.Liu
14 天前
c++
·
rust
·
cxx
【CXX】6.10 *mut T,*const T原始指针
通常情况下,你应该尽可能使用引用(&mut T, &T)或 std::unique_ptr 而不是原始指针,但原始指针也可以作为一种不安全的备选方案。
Source.Liu
16 天前
c++
·
rust
·
cxx
【CXX】6.9 CxxVector<T> — std::vector<T>
std::vector 的 Rust 绑定称为 CxxVector。Rust 代码永远无法通过值获取 CxxVector。相反,在 Rust 代码中,我们只能通过引用或智能指针来访问向量,例如 &CxxVector 或 UniquePtr<CxxVector>。
Source.Liu
18 天前
c++
·
rust
·
cxx
【CXX】6.7 SharedPtr<T> — std::shared_ptr<T>
std::shared_ptr 的 Rust 绑定称为 SharedPtr。SharedPtr 不支持 T 为不透明的 Rust 类型。对于在语言边界上传递不透明 Rust 类型的所有权,应改用 Box(C++ 中的 rust::Box)。
Source.Liu
19 天前
c++
·
rust
·
cxx
【CXX】6.5 Box<T> — rust::Box<T>
Box 不支持 T 为不透明的 C++ 类型。对于在语言边界传递不透明 C++ 类型的所有权,应使用 UniquePtr 或 SharedPtr。
Source.Liu
20 天前
rust
·
cxx
【CXX】6.3 &[T], &mut [T] — rust::Slice<T>
T 不能是不透明的 Rust 类型或不透明的 C++ 类型。对不透明 Rust 类型的切片支持即将推出。
Source.Liu
21 天前
qt
·
rust
·
cxx
【CXX】6 内置绑定
除了所有基本类型(如 i32 <=> int32_t),以下常见类型可以用于共享结构体的字段以及外部函数的参数和返回值。
Source.Liu
21 天前
c++
·
rust
·
cxx
【CXX】6.2 &str — rust::Str
请注意,rust::Str 的行为类似于 &str,即它是一个借用!C++ 需要特别注意其生命周期。再次强调:&str 对应的是 rust::Str。不要尝试将 &str 写成 const rust::Str &。C++ 语言级别的引用无法捕获 &str 的“胖指针”特性。
Source.Liu
22 天前
c++
·
rust
·
cxx
【CXX】6.6 UniquePtr<T> — std::unique_ptr<T>
std::unique_ptr 的 Rust 绑定称为 UniquePtr。有关 Rust API 的文档,请参见链接。
Source.Liu
1 个月前
qt
·
rust
·
cxx
【CXX】4.4 其他构建系统
你需要至少完成以下三件事:生成CXX生成的C++绑定代码。编译生成的C++代码。将生成的目标文件与你的其他C++和Rust目标文件链接在一起。
Source.Liu
1 个月前
qt
·
rust
·
cxx
【CXX】5 桥接模块参考
第1章篇(核心概念)介绍了CXX用于表示语言边界的高级模型。本篇在此基础上,详细记录#[cxx::bridge]的语法和功能。
Source.Liu
1 个月前
c++
·
rust
·
cxx
【CXX】4 跨平台构建系统特性对比
多语言构建系统选项为开发团队提供了灵活性和选择,以适应不同的项目需求和现有的技术栈。CXX作为一个设计灵活的工具,旨在与多种构建系统无缝集成。以下是对不同构建系统选项的简要概述和建议:
Source.Liu
2 个月前
c++
·
rust
·
cxx
【CXX】0 Rust与C 互操作利器:CXX库介绍与示例
CXX库是一个非常强大的工具,它使得Rust和C++之间的互操作性变得既安全又高效。本专栏将展示如何使用CXX库来桥接Rust和C++代码,同时保持两者语言的特性和惯用法。
许野平
8 个月前
c++
·
rust
·
字符串
·
string
·
cxx
Rust:基于cxx的 C++ 混合编程,字符串参数的转换方法
在C++使用cxx库调用Rust函数时,字符串变量的传递方式主要取决于Rust和C++两端如何声明和处理这些字符串。cxx库提供了一种机制来在Rust和C++之间安全地传递数据,包括字符串。
许野平
8 个月前
c++
·
rust
·
cxx
Rust:如何在 C++ 源代码中调用 Rust 源代码中的函数
在C++中通过cxx库调用Rust函数涉及几个步骤,这些步骤包括在Rust中定义要导出的函数、生成C++绑定、以及在C++代码中调用这些绑定。下面是一个简化的过程,展示了如何使用cxx在C++中调用Rust函数。