更新问题Why this two rvalue references examples have different behavior? :
源代码:
int a = 0;
auto && b = a++;
++a;
cout << a << b << endl;
打印 20
在 a++
调用之后使用 b
是否是未定义行为 (UB)?也许我们不能使用 b
因为它指的是临时的?
最佳答案
代码很好。 b
指的是一个生命周期扩展的对象,它是表达式 a++
的结果,它与 a
是不同的对象。 (将临时对象绑定(bind)到引用可将对象的生命周期延长到引用的生命周期。)您可以使用和修改这两个对象。
关于c++ - 我可以对临时使用右值引用吗?它是未定义的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35315826/