Updating the question Why this two rvalue references examples have different behavior?:
Source code:
int a = 0;
auto && b = a++;
++a;
cout <&l
Taking a reference to a temporary extends its lifetime to the end of lifetime of that reference.
ISO/IEC 14882 § 12.2/5:
The second context is when a reference is bound to a temporary. The temporary to which the reference is bound or the temporary that is the complete object of a subobject to which the reference is bound persists for the lifetime of the reference […]