その他の型
Rust 型 | C++ 型 |
---|---|
String | rust::String |
&str | rust::Str |
CxxString | std::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 の
String
はstd::string
に直接マッピングされません。これには次のような理由があります。std::string
は、String
が必要とする UTF-8 不変条件を満たしません。- この 2 つの型はメモリ内のレイアウトが異なるため、言語間で直接渡すことはできません。
std::string
は、Rust のムーブ セマンティクスと一致しないムーブコンストラクタを必要とするため、std::string
を Rust に値で渡すことはできません。