【发布时间】:2015-01-08 07:55:29
【问题描述】:
我想用函数初始化一个大对象。目前我有:
fn initialize(mydata: &mut Vec<Vec<MyStruct>>) { /* ... */ }
我希望有:
fn initialize() -> Vec<Vec<MyStruct>> { /* ... */ }
我听说 C++ 经常实现返回值优化 (RVO),如果你很幸运并且有一个好的编译器的话。我们可以在这里禁用复制并让它通过传递给函数的隐藏指针返回吗? RVO 是语言的一部分还是可选的优化?
【问题讨论】:
-
This discussion 建议 RVO 触发大于指针的任何内容。但也有关于 NRVO 的 this open issue。所以我想这取决于你如何实现
initialize。
标签: optimization rust return-value-optimization