64,649
社区成员
发帖
与我相关
我的任务
分享
templateT>
T&& Move(T&& a)
{
return a;
}
#include <iostream>
template <class T>
typename std::remove_reference<T>::type&&
MyMove(T&& param)
{
using rtype= typename std::remove_reference<T>::type&&;
return static_cast<rtype>(param);
}
template <class T>
T&& YourMove(T&& a)
{
return a;
}
struct S
{
S& operator=(const S& s){ std::cout<<"S::operator=(const S&)"<<std::endl; return *this; }
S& operator=(S&& s){ std::cout<<"S::operator=(S&&)"<<std::endl; return *this; }
};
int main(void)
{
S s,t;
t=YourMove(s);
s=MyMove(t);
}