up:: Cpp
source:: 右辺値参照・ムーブセマンティクス - cpprefjp C++日本語リファレンス
source:: Value categories - cppreference.com
expression(値を伴う演算子、文、変数名とか)は大きく二つ、glvalue
とrvalue
に分類される。さらにglvalue
はlvalue
とxvalue
、rvalue
はprvalue
とxvalue
に分類される。lとrとxでいいじゃん……
なお、そもそも明快な基準によって2つに分けることが難しいらしい。
下のは一応厳密な分類。
glvalue
lvalueとxvalueの総称。generalized lvalue。
lvalue
関数またはオブジェクト。
大体こっち。
rvalue
prvalueとxvalueの総称。
一時オブジェクトやリテラル値など。
prvalue
rvalueでxvalueじゃないやつ。
xvalue
オブジェクト。expiring value。
その寿命が近いか、寿命に関心のないことの表現。
一部の式の結果や、右辺値参照への明示的キャストなどが来るらしい。