该功能std::move()定义为
template<typename T>
typename std::remove_reference<T>::type&& move(T && t)
{
return static_cast<typename std::remove_reference<T>::type&&>( t );
}
Run Code Online (Sandbox Code Playgroud)
有四个地方我可以想象要调用的移动构造函数:
std::move()函数本身,但可能在返回的引用最终到达的位置.我敢打赌4号,但我不是百分百肯定,所以请解释你的答案.
我不明白为什么std::move()必须创建。难道一切都不是static_cast<T&&>()吗?我发现为什么std::move()可能被创建的唯一原因只是为了使代码更易于阅读。因此,static_cast程序员可以看到std::move()并理解它在做什么,而不是看到它。除此之外,我看不出任何目的。有人能帮我理解他们为什么创建std::move()吗?