【发布时间】:2016-06-24 22:49:04
【问题描述】:
这是std::move() 的可能实现。不完全符合标准的细节,但非常接近:
template<class T>
typename std::remove_reference<T>::type&&
myMove( T&& Arg )
{
return ( ( typename std::remove_reference<T>::type&& )Arg );
}
我不明白为什么如果我们将typename std::remove_reference<T>::type&& 替换为T&& 会不起作用,即
template<class T>
typename std::remove_reference<T>::type&&
myMove( T&& Arg )
{
return ( (T&&) Arg );
}
【问题讨论】:
-
remove_reference<T>当然很重要,如果T已经是参考。 -
这就是
type_name的成功之处:stackoverflow.com/a/20170989/576911 :-)
标签: c++ move-semantics