محدودیت‌های CXX

تا حد زیادی مفیدترین صفحه هنگام استفاده از CXX برابر type reference است.

‏ CXX به‌طورکلی مناسب مواردی است که:

  • اینترفیس ++Rust-C شما به اندازه کافی ساده است که می‌توانید همه آن را اعلام یا declare کنید.
  • شما فقط از تایپ‌هایی استفاده می‌کنید که قبلاً توسط CXX ​​پشتیبانی می‌شوند، برای مثالstd::unique_ptr, std::string, &[u8] و غیره.

این مورد محدودیت‌های زیادی دارد --- برای مثال عدم پشتیبانی از تایپ 'Option' Rust.

این محدودیت‌ها ما را محدود می‌کنند تا از Rust در Chromium فقط برای "گره‌های برگ" به خوبی ایزوله شده استفاده کنیم نه برای تعامل دلخواه ++Rust-C. هنگام در نظر گرفتن یک مورد استفاده برای Rust در Chromium، یک نقطه شروع خوب این است که پیش نویس پیوندهای CXX برای مرز زبان (language boundary) را پیش‌نویس کنید تا ببینید آیا به اندازه کافی ساده به نظر می رسد یا خیر.

In addition, right now, Rust code in one component cannot depend on Rust code in another, due to linking details in our component build. That's another reason to restrict Rust to use in leaf nodes.

همچنین باید برخی از نکات مهم دیگر را با CXX مطرح کنید، به عنوان مثال:

  • مدیریت خطای آن بر اساسC++ exception است (در اسلاید بعدی ارائه شده است)
  • استفاده ازFunction pointerها دشوار است.