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