EG
fn foo(x: usize) -> usize {
if x == 0 { return 0 }
let _guard = Box::new(x);
return foo(x - 1);
}Вот в этой странной функции нет хвостовой рекурсии, например.
Size: a a a
EG
fn foo(x: usize) -> usize {
if x == 0 { return 0 }
let _guard = Box::new(x);
return foo(x - 1);
}r
TK
EG
become, который запускает дропы сразу / требует, чтобы никаких дропов на этот момент уже не оставаласьEG
r
EG
box сейчас вполне используется, просто в найтли.EG
macro.EG
become и abstract реально просто зарезервированыEG
П
EG
Box::new()TK
EG
box в стейбле нетr
П
EG
TK
EG