std::move
执行到右值的无条件的转换,但就自身而言,它不移动任何东西
内部的实现类似这样:
1 | template<typename T> |
remove_reference<T>::type
对T
去除引用using ReturnType = typename remove_reference<T>::type&&
,使得ReturnType
是一个右值引用static_cast<ReturnType>(param)
将param转化为右值引用
类似使用C++14版本更简单:
1 | template<typename T> |