Я хочу инициализировать большой объект функцией. На данный момент у меня есть:
fn initialize(mydata: &mut Vec<Vec<MyStruct>>) { /* ... */ }
Я бы предпочел:
fn initialize() -> Vec<Vec<MyStruct>> { /* ... */ }
Я слышал, что C ++ часто реализует оптимизацию возвращаемого значения (RVO), если вам повезет и у вас есть хороший компилятор. Можем ли мы отключить здесь копирование и вернуть его с помощью скрытого указателя, который передается в функцию? RVO - это часть языка или дополнительная оптимизация?
initialize
. - person Michael   schedule 08.01.2015