不同类型的*

可能重复:
什么是右值,左值,xvalues,glvalues和prvalues?

The standard states:
3.2 The this pointer 
1 In the body of a non-static (9.3) member function, 
the keyword this is a non-lvalue expression whose value is the address of the 
object for which the function is called.

右值,左值,非右值,非左值有什么区别?

这些*值有多少种? 我的意思是我也听说过xvalues。

需要了解这一点。 这些与临时和lambdas有什么关系?

对不起,如果我听起来重复,困惑,矛盾和冗余。


左值的东西,可以在赋值语句的第l EFT-右手边出现。 右边的值是什么,可以在赋值中的R飞行,右手边出现。 this是一个非左值表达式,您不能指定它:您不能说this = new Foo(); , 例如。

[编辑补充:上面的段落是错误的,虽然它可能是一个有用的助记符,并且反映了该术语的起源。 见下面的评论。 但是,下面的参考文献是正确的。]

至少如果我看到的草案具有代表性,请参阅该标准的第3.10节。 部分[basic.lval]。 它开始于:“每个表达式都是左值或右值。”

这是现有的标准。 C ++ 0x似乎可能会引入:xvalues,glvalues,prvalues。 看看什么是右值,左值,左值,右值和上值? 为更多abuot这。

链接地址: http://www.djcxy.com/p/73005.html

上一篇: Different types of *

下一篇: std::move() and xvalue in C++