Задать вопрос
mrjbom
@mrjbom

Где умные указатели размещают полученные данные?

Box и Rc размещают полученные данные в куче.
Но что насчёт Cell, RefCell и OnceCell?
Я думаю, что если значение объявлено на стеке, то оно и останется на стеке при создании экземпляра одного из *Cell типа, так ли это?
  • Вопрос задан
  • 258 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
vabka
@vabka Куратор тега Rust
Cell<T> has the same memory layout and caveats as UnsafeCell<T>. In particular, this means that Cell<T>has the same in-memory representation as its inner type T.


У остальных нет никаких обязательств о memory representation, но они тоже ничего в куче не выделяют.

Ну и всегда можно посмотреть на исходники)
https://doc.rust-lang.org/src/core/cell.rs.html#293
https://doc.rust-lang.org/src/core/cell.rs.html#2034
https://doc.rust-lang.org/src/core/cell.rs.html#700
https://doc.rust-lang.org/src/core/cell/once.rs.html#33
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы