其他类型

Rust TypeC++ Type
Stringrust::String
&strrust::Str
CxxStringstd::string
&[T]/&mut [T]rust::Slice
Box<T>rust::Box<T>
UniquePtr<T>std::unique_ptr<T>
Vec<T>rust::Vec<T>
CxxVector<T>std::vector<T>
  • 这些类型可用于共享结构体的字段以及外部函数的参数和返回结果。
  • 请注意,Rust 的 String 不会直接映射到 std::string。导致这种情况的原因有以下几种:
    • std::string 不遵循 String 所需的 UTF-8 不变性。
    • 这两种类型的内存布局不同,因此无法直接在语言之间进行传递。
    • std::string 需要与 Rust 的移动语义不匹配的 move 构造函数,因此 std::string 无法按值传递给 Rust。