更新问题为什么这两个右值引用示例有不同的行为? https://stackoverflow.com/questions/35315472/why-this-two-rvalue-references-examples-have-different-behavior:
源代码:
int a = 0;
auto && b = a++;
++a;
cout << a << b << endl;
prints 20
是否使用未定义行为(UB)b
之后a++
称呼?也许我们不能使用b
因为它指的是暂时的?
代码没问题。b
指的是一个生命周期延长的对象,它是表达式的结果a++
,这是一个不同的对象a
。 (将临时对象绑定到引用可将对象的生命周期延长到引用的生命周期。)您可以使用和修改这两个对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)