Сообщение 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);
}>Или же конструкторы и деструкторы будут вызваны оба раза, а при перемещении произойдет лишь "передача" внутренностей?
вот это