here弄清楚
here弄清楚
以下表达式是xvalue表达式:
3. a.m,对象表达式的成员,其中a是一个右值,m是非引用类型的非静态数据成员;
here举一个例子
struct X { int n; };
X{4}; // prvalue: does not have an identity
X{4}.n; // xvalue: does have an identity and denotes resources
// that can be reused
但是,当我尝试使用
&
来cout
的地址X{4}.n
时,编译器拒绝进行编译。cout << &X{4}.n << endl; // error C2102: '&' requires l-value
这是否意味着我永远无法获得xvalue的地址?
最佳答案
标准是这样的:[expr.unary.op]/3
因此,不能,您不能使用&
运算符获取右值的地址。
关于c++ - “xvalue has identity”,为什么我不能数它地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59332607/