【发布时间】:2013-12-30 07:13:24
【问题描述】:
刚刚阅读 Stroustrup 的 C++ Programming Language 第 4 版,在第 7 章中他说:
move(x)表示static_cast<X&&>(x)其中 X 是 x 的类型
和
因为 move(x) 不移动 x(它只是产生一个右值引用 to x) 如果 move() 被称为 rval() 会更好
我的问题是,如果move() 只是将变量转换为 rval,那么实现对变量的引用“移动”(通过更新指针)的实际机制是什么?
我认为move() 就像一个移动构造函数,除了客户端可以使用move() 来强制编译器??
【问题讨论】:
-
移动构造函数进行移动(并且由于它们接受右值引用,它们被视为“移动构造函数”),并且
std::move显式地将某些东西设为右值,从而可以使用构造函数。
标签: c++ c++11 move move-semantics