Мне нравится emplace()
в C ++, который позволяет сэкономить на построении и уничтожении перемещения: например, strings.push_back("abcd"s)
означает
построение, перемещение, уничтожение временного
в то время как strings.emplace_back("abcd")
- это просто «конструкция».
Можно ли добиться чего-то подобного в Rust (возможно, с оптимизацией компилятора)? Обычный vec.push(String::from("abcd"))
выглядит как (в C)
construct + memcpy ()
Меня также интересуют случаи, которые более сложны, чем просто нажатие строки в вектор.