什么是* T的价值类型?

时间:2017-05-23 18:42:15

标签: c++11

让我们考虑一下C ++中非常简短的代码:

class T{
};
T *t = new T();

*t的类型是什么?右值/左值/ x值/ glvalue?为什么? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

检查左值非常简单。它可以出现在赋值运算符的左侧吗?

在您的情况下,答案是"是"。

*t = T();

有效。因此,*t类型的值为左值

由于是左值,它也是 glvalue

来自https://timsong-cpp.github.io/cppwp/n3337/basic.lval

  

glvalue(“generalized”左值)是左值或x值。