函数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号,但我不是百分百肯定,所以请解释你的答案。
答案 0 :(得分:8)
没有移动施工。 std::move()
接受引用并返回引用。 std::move()
基本上只是演员。
你的猜测4.是正确的(假设你实际上是在调用移动构造函数)。
答案 1 :(得分:3)
std :: move只是一个类型转换,它告诉编译器该类型是一个右值。