如何确定 Rust 中的 new() 何时在堆栈或堆上分配
How to determine when new() in Rust allocates on stack or heap
有没有办法(除了查看实现和文档)确定 rust 中的 new() 何时在堆栈或堆上分配?
理想情况下,我正在寻找一种在编写源代码时一目了然地确定这一点的方法。例如可以添加的特征或参数限制是否可以进行堆分配。
Rust 中名为 new()
的函数无论如何都不是特别的。所以不,您无法轻易确定此类函数返回的内容是否拥有任何堆分配的数据。即使对于 std::default::Default
trait 实现,也没有限制或约定阻止 default()
方法进行堆分配,通常也没有记录。
有没有办法(除了查看实现和文档)确定 rust 中的 new() 何时在堆栈或堆上分配?
理想情况下,我正在寻找一种在编写源代码时一目了然地确定这一点的方法。例如可以添加的特征或参数限制是否可以进行堆分配。
Rust 中名为 new()
的函数无论如何都不是特别的。所以不,您无法轻易确定此类函数返回的内容是否拥有任何堆分配的数据。即使对于 std::default::Default
trait 实现,也没有限制或约定阻止 default()
方法进行堆分配,通常也没有记录。