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