函数std::move()
定义为
template<typename T>
typename std::remove_reference<T>::type&& move(T && t)
{
return static_cast<typename std::remove_reference<T>::type&&>( t );
}
我可以想象要调用 move 构造函数的四个地方:
- 参数传递时。
- 执行类型转换时。
- 返回结果时。
- 不在
std::move()
函数本身,但可能在返回的引用最终到达的地方。
我会赌 4 号,但我不能 100% 确定,所以请解释一下你的答案。
最佳答案
没有进行 move 构建。 std::move()
接受一个引用并返回一个引用。 std::move()
基本上只是一个类型转换。
您的猜测 4. 是正确的(假设您实际上最终调用了 move 构造函数)。
关于c++ - 什么时候在 `std::move()` 函数中调用 move 构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749587/