【发布时间】:2020-06-19 18:40:15
【问题描述】:
我喜欢 C++ 中的emplace()ing,它可以节省移动构造和破坏:例如strings.push_back("abcd"s) 表示
建造、移动、破坏临时物
同时
strings.emplace_back("abcd") 只是“构造”。
在 Rust 中可以实现类似的东西(也许通过编译器优化)?通常的 vec.push(String::from("abcd")) 看起来像(在 C 中)
构造 + memcpy()
我还对比仅仅将字符串推入向量更复杂的情况感兴趣。
【问题讨论】:
-
The placement by return / guaranteed copy elision RFC discusssion 包括对安放方法的讨论,命名为
*_with。
标签: c++ performance rust in-place emplace