В Rust мы можем использовать тип Box<T>
для размещения вещей в куче. Этот тип используется, чтобы безопасно абстрагировать указатели на кучу памяти. Box<T>
предоставляется стандартной библиотекой Rust.
Мне было интересно, как реализовано распределение Box<T>
, поэтому я нашел его исходный код. Вот код для Box<T>::new
(от Rust 1.0):
impl<T> Box<T> {
/// Allocates memory on the heap and then moves `x` into it.
/// [...]
#[stable(feature = "rust1", since = "1.0.0")]
#[inline(always)]
pub fn new(x: T) -> Box<T> {
box x
}
}
Единственная строка в реализации возвращает значение box x
. Это ключевое слово box
не объясняется нигде в официальной документации; на самом деле это кратко упоминается только на странице документации std::boxed
.