我对以下代码感到困惑:
#include <iostream>
int main()
{
int x{};
int&& rvx = static_cast<int&&>(x);
++rvx;
std::cout << x << std::endl;
}
它的输出是1。我不明白这是如何工作的。static_cast应该将左值转换x为 xvalue,然后将其分配给rvx. 为什么递增rvx会导致变化x?这是因为转换后的左值到右值本质上位于相同的内存位置,但现在它只是被认为是右值?我的印象是(这可能是错误的)演员不知何故从它的论点中创造了一个临时的。