Сообщение Re[3]: КОгда выбирается move-constructor? от 14.07.2017 6:48
Изменено 14.07.2017 6:57 prezident.mira
Re[3]: КОгда выбирается move-constructor?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, N. I., Вы писали:
NI>>
J>А зачем здесь std::move? object ведь уже rvalue-ref
rvalue-ref это тип, а не категория значения rvalue.
В строке
подвыражение object является lvalue типа TOnlyMovable, а подвыражение std::move(object) уже является xvalue.
J>Здравствуйте, N. I., Вы писали:
NI>>
void foo(TOnlyMovable&& object) {
NI>> TOnlyMovable m(std::move(object));
NI>>}
J>А зачем здесь std::move? object ведь уже rvalue-ref
rvalue-ref это тип, а не категория значения rvalue.
В строке
TOnlyMovable m(std::move(object))
подвыражение object является lvalue типа TOnlyMovable, а подвыражение std::move(object) уже является xvalue.
Re[3]: КОгда выбирается move-constructor?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, N. I., Вы писали:
NI>>
J>А зачем здесь std::move? object ведь уже rvalue-ref
rvalue-ref это тип, а не категория значения rvalue.
В строке
подвыражение object является lvalue типа TOnlyMovable, а подвыражение std::move(object) уже является xvalue типа TOnlyMovable.
J>Здравствуйте, N. I., Вы писали:
NI>>
void foo(TOnlyMovable&& object) {
NI>> TOnlyMovable m(std::move(object));
NI>>}
J>А зачем здесь std::move? object ведь уже rvalue-ref
rvalue-ref это тип, а не категория значения rvalue.
В строке
TOnlyMovable m(std::move(object))
подвыражение object является lvalue типа TOnlyMovable, а подвыражение std::move(object) уже является xvalue типа TOnlyMovable.