rvalue(右值):在 C/C++(尤其是 C++)中,指通常只出现在赋值号右边、主要用于“提供值”而非“代表一个可持久修改的对象”的表达式结果。典型 rvalue 往往是临时对象或纯计算结果,一般不能被取地址或赋值(规则在现代 C++ 中更细分为 prvalue/xvalue 等)。也常用于理解与实现移动语义(move semantics)与完美转发(perfect forwarding)。
(注:在不同语言/标准语境下,rvalue 的精确定义可能有所扩展或细分。)
/ˈɑːrˌvæljuː/
An rvalue is usually a temporary result.
右值通常是一个临时结果。
In modern C++, detecting whether an expression is an rvalue helps decide whether to move or copy, which can significantly improve performance in generic code.
在现代 C++ 中,判断一个表达式是否为右值有助于决定应当移动还是拷贝,这在泛型代码里可能显著提升性能。
rvalue 来自 right-hand value 的缩写/合成说法:早期用于描述常出现在赋值表达式右边(right-hand side)的“值”。与之相对的 lvalue 则与 left-hand 的位置联想相关。现代 C++ 标准将值类别体系进一步精细化,但“右值≈临时/可移动的值”仍是常见的学习入口。