Re[4]: КОгда выбирается move-constructor?
От: Meyers  
Дата: 10.08.17 19:52
Оценка:
N. I.:

NI>jazzer:


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


J>>А зачем здесь std::move? object ведь уже rvalue-ref


NI>Тип переменной (в частности, параметра функции) может не совпадать с типом выражения, образованного этой переменной. В данном случае тип параметра object — TOnlyMovable&&, но тип выражения object — TOnlyMovable.


NI>Выражение std::move(object) — это xvalue типа TOnlyMovable.


Я не согласен. См. http://scottmeyers.blogspot.ru/2015/02/expressions-can-have-reference-type.html
Re[5]: КОгда выбирается move-constructor?
От: N. I.  
Дата: 11.08.17 08:56
Оценка:
Meyers:

NI>>Тип переменной (в частности, параметра функции) может не совпадать с типом выражения, образованного этой переменной. В данном случае тип параметра object — TOnlyMovable&&, но тип выражения object — TOnlyMovable.


NI>>Выражение std::move(object) — это xvalue типа TOnlyMovable.


M>Я не согласен.


С чем конкретно?

M>См. http://scottmeyers.blogspot.ru/2015/02/expressions-can-have-reference-type.html


TL;DR.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.