Просто прочитав язык программирования Stroustrup С++ 4th Ed и в главе 7 он говорит:
move(x)
означаетstatic_cast<X&&>(x)
, где X - тип x
и
Так как move (x) не перемещает x (он просто создает ссылку rvalue на x) было бы лучше, если move() был назван rval()
Мой вопрос: если move()
просто превращает переменную в rval, каков фактический механизм, который достигает "перемещения" ссылки на переменную (путем обновления указателя)?
Я думал, что move()
- это как конструктор перемещения, за исключением того, что клиент может использовать move() для принудительного компилятора