【发布时间】:2021-02-04 14:31:21
【问题描述】:
我想了解有关 C++ 值类别的说明。
struct Foo {...};
void do_something(Foo{});
上面的 Foo{} 是 r 值还是 x 值?
我了解值类别存在层次结构,并且 r 值实际上是 x 值或 pr 值。我也知道标准说“临时实现是一个 x 值”,但我不确定创建一个临时对象是否符合这个定义。
但我不确定的是 gl-value 和 r-value 是否是层次结构中的“抽象”类别,而叶子(l-value、x-value 和 pr-value)是实际的实现.
谁能帮我解释一下?
【问题讨论】:
-
看看那些
-value 的。我明白我离当今 C++ 标准的状态还很远。 -
...所有不是左值的都是右值......