函数std::move()
定义为
template<typename T>
typename std::remove_reference<T>::type&& move(T && t)
{
return static_cast<typename std::remove_reference<T>::type&&>( t );
}
我可以想象在四个地方调用移动构造函数:
- 传递参数时。
- 进行演员表时。
- 返回结果时。
- 不在
std::move()
函数本身,但可能在返回的引用最终到达的地方。
我会赌第 4 号,但我不是 100% 确定,所以请解释你的答案。