让我们考虑一下C ++中非常简短的代码:
class T{
};
T *t = new T();
*t
的类型是什么?右值/左值/ x值/ glvalue?为什么?
提前谢谢。
答案 0 :(得分:1)
检查左值非常简单。它可以出现在赋值运算符的左侧吗?
在您的情况下,答案是"是"。
*t = T();
有效。因此,*t
类型的值为左值。
由于是左值,它也是 glvalue 。
来自https://timsong-cpp.github.io/cppwp/n3337/basic.lval:
glvalue(“generalized”左值)是左值或x值。