Q. 最近在看c++primer的時候,遇到了一個問題,照理來說下例的42是右值,為什麼最後書上說他是傳遞參數t2給g函數的第一個形參左值?
很需要大神們的協助,小妹拜託各位(シ_ )シ m( _)m
以下為代碼:
`template<typename F,typename T1 ,typename T2 >
void flip2(F f,T1 &&t1,T2 &&t2)
{
f(t2,t1);
}
void g (int &&i,int &j)
{
cout<<i<<" "<<j<<endl;
}
flip2(g,i,42);`
42
是右值, 但是, 这个函数的用意是参数的转发(forward), 所以传递给 g 的时候参数是t2
,t2
是左值.