首页 > 解决方案 > 如果我传递一个右值,为什么在 std::move 中需要 static_cast 和 std::remove_reference?

问题描述

我试图了解更多的移动语义。现在这是一个可能的实现std::move

template <typename T>
typename std::remove_reference<T>::type&& move_(T&& obj)
{
    return static_cast<typename std::remove_reference<T>::type&&>(obj);
}

但是为什么我不能直接返回实例化后obj的哪个呢?rvalue-reference type

标签: c++c++11stdmove

解决方案


推荐阅读