Here is a possible implementation of std::move()
. It's not fully conforming to the details of the standard, but it's very close:
template<class T>
typename std::remove_reference<T>::type&&
myMove( T&& Arg )
{
return ( ( typename std::remove_reference<T>::type&& )Arg );
}
I don't understand why it wouldn't work if we replace typename std::remove_reference<T>::type&&
by the T&&
, i.e.
template<class T>
typename std::remove_reference<T>::type&&
myMove( T&& Arg )
{
return ( (T&&) Arg );
}