Tag: C++ Standard

C++ 标准中值类别的中文翻译


以下内容是《ISO/IEC 14882:2024》[7.2.1] Value category [basic.lval] 部分的中文翻译。标准文件可从此仓库下载。


          expression         
           /     \           
          /       \          
     glvalue      rvalue     
      /    \      /   \      
     /      \    /     \     
 lvalue     xvalue    prvalue
  • glvalue(泛左值)是一个表达式,其求值结果决定了某个对象或函数的身份(identity)。
  • prvalue(纯右值)是一个表达式,其求值用于初始化一个对象、或在特定上下文中计算某个运算符的操作数,或者是一个类型为 cv void 的表达式。
  • xvalue(亡值)是一个 glvalue,它表示一个其资源可以被重用的对象(通常是因为该对象即将结束其生命周期)。
  • lvalue(左值)是一个不是 xvalue 的 glvalue。
  • rvalue(右值)是一个 prvalue 或者 xvalue。

每一条表达式恰好属于本分类体系中以下三种基本类别之一:lvalue、xvalue 或 prvalue。这种表达式的属性被称为它的值类别(value category)。

[...]