Исправление red75prim, (текущая версия) :
а вот забоксенные как указатели на кучу - фиг знает, оптимизируется их размещение для крошечных замыканий или нет.
Нет, не оптимизируется. Если есть Box, то есть и выделение памяти на куче. Но есть одно исключение - боксинг типов нулевого размера не выделяет память. То есть, забоксенная лямбда (например Box::new(|x| { x + 1 }) as Box<Fn(i32) -> i32>
), не выделяет память на куче.
Исходная версия red75prim, :
а вот забоксенные как указатели на кучу - фиг знает, оптимизируется их размещение для крошечных замыканий или нет.
Нет, не оптимизируется. Если есть Box, то есть и выделение памяти на куче. Но есть одно исключение - боксинг типов нулевого размера не выделяет память. То есть забоксенная лямбда (например Box::new(|x| { x + 1 }) as Box<Fn(i32) -> i32>
), не выделяет память на куче.