Все что ниже имеет отношение к стандарту С11 и после него. А ведь и до этого неплохо жили...
RValue или универсальная ссылка для шаблонов работает особым образом.
template<class T>
typename remove_reference1<T>::value&& move1(T&& t)
{
return static_cast<typename remove_refetence1<T>::value&&(t)
}
..
template
T&& forward1(typename remove_reference1::value& t)
{
static_cast(t)
}
wikicode
майерс