2 wddpfx wddpfx 于 2016.03.05 09:09 提问

关于c++转发中函数参数的问题?

图片说明图片说明
(上面两个图片顺序错了)用flip2调用函数g时:flip2(g,i,42)传给g中i的实参是42,那么为什么说错误:不能从一个左值实例化int&&?函数参数与其他任何变量一样,都是左值表达式。又是什么意思?

3个回答

WinsenJiansbomber
WinsenJiansbomber   2016.03.05 13:39

这些书就会玩术语,让术语把读者搞死

u013596119
u013596119   Rxr 2016.03.05 14:38

flip2接受的i是右值,因为它是根据模板引用,然后进入g,flip2把i传给g,这个时候i就变成了左值,因为“函数参数与其他任何变量一样,都是左值表达式”,所以g的第二个参数是可以正确接受但是i却不能被接受,因为g的第一个参数需要为右值引用但是flip2给的却是左值表达式

oyljerry
oyljerry   Ds   Rxr 2016.03.05 16:10

t1是右值参数,不能传递左值做参数

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!