Информация об изменениях

Сообщение Re: Правильно ли я понимаю перемещение от 19.05.2016 13:38

Изменено 19.05.2016 13:40 antropolog

Здравствуйте, dosik, Вы писали:

нет, неправильно, вектор будет создан и там и там. В первом приближении код с перемещением эквивалентен следующему:

void some_func(..., OUT std::vector<some_type>& ret) {
    std::vector<some_type> result;
    ......
    //Some code to fill vector
    ......
    ret.swap(result);
}


>Или же конструкторы и деструкторы будут вызваны оба раза, а при перемещении произойдет лишь "передача" внутренностей?

вот это
Re: Правильно ли я понимаю перемещение
Здравствуйте, dosik, Вы писали:

нет, неправильно, вектор будет создан и там и там (если не рассматривать работу оптимизатора). В первом приближении код с перемещением эквивалентен следующему:

void some_func(..., OUT std::vector<some_type>& ret) {
    std::vector<some_type> result;
    ......
    //Some code to fill vector
    ......
    ret.swap(result);
}


>Или же конструкторы и деструкторы будут вызваны оба раза, а при перемещении произойдет лишь "передача" внутренностей?

вот это