追加の型

Rust の型C++ の型
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>
  • これらの型は、共有構造体のフィールド、および extern 関数の引数と戻り値で使用できます。
  • Rust の Stringstd::string に直接マップされないことに注意してください。これにはいくつかの理由があります。
    • std::string は、String が要求する UTF-8 不変条件を維持しません。
    • この 2 つの型はメモリ上のレイアウトが異なるため、言語間で直接受け渡すことはできません。
    • std::string には Rust のムーブセマンティクスと一致しないムーブコンストラクターが必要なため、std::string を値渡しで Rust に渡すことはできません。