Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ограничения CXX

Самая полезная страница при использовании CXX — справочник по типам.

CXX по сути подходит для случаев, когда:

  • Интерфейс между Rust и C++ достаточно прост, и его можно полностью описать.
  • Вы используете только типы, которые CXX уже поддерживает нативно, например std::unique_ptr, std::string, &[u8] и т. д.

У него много ограничений — например, нет поддержки типа Option из Rust.

Эти ограничения вынуждают использовать Rust в Chromium только для хорошо изолированных «листовых узлов», а не для произвольного взаимодействия Rust и C++. При рассмотрении применения Rust в Chromium хорошей отправной точкой будет набросать привязки CXX для границы языков, чтобы посмотреть, достаточно ли она проста.

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++ (показано на следующем слайде)
  • Указатели на функции неудобны в использовании.