その他の型

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 に値で渡すことはできません。