Re[10]: КОгда выбирается move-constructor?
От: jazzer Россия Skype: enerjazzer
Дата: 14.07.17 11:48
Оценка:
Здравствуйте, night beast, Вы писали:

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


NB>>>это к вопросу о том, для чего нужен std::move


J>>так я же уже сказал: чтобы из lvalue типа TOnlyMovable&&, сделать xvalue того же самого типа TOnlyMovable&&.


NB>не пойму я тебя. здесь

NB>
NB>void foo(TOnlyMovable&& object) {
NB>    TOnlyMovable m(std::move(object));
NB>}
NB>

NB>std::move нужен? если не нужен, то какой по твоему вызовется конструктор?

нужен, чтоб lvalue типа TOnlyMovable&& превратить в xvalue того же самого типа TOnlyMovable&& — тогда из перегрузке будет выбран конструктор перемещения.
Тип rvalue reference и там, и там, разница в lvalue/xvalue.
т.е. lvalue типа TOnlyMovable&& свяжется с аргументом типа TOnlyMovable&,
а xvalue типа TOnlyMovable&& свяжется с аргументом типа TOnlyMovable&&

Ты посмотри на мой пример в ideone, там есть над чем подумать.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.