The*_*ock 13 c++ this language-lawyer c++11
我知道类型this是prvalue("纯"rvalue)指针,并且它可以通过附加关键字成为指向const的指针和/或指向volatile的指针(影响对其实例变量的访问)const或者volatile它所属的函数定义的末尾.
我也知道this有时(错误地)将其描述为一个const指针,也许是为了说"你不能做出任务this".作为右值,它本质上是不可分配的,因此不需要constrvalue 的概念.
我也知道在C++ 11中,有些情况下rvalue或左值会影响调用解析,但我试图解决这些可能性,而且我不确定是否存在实际情况调用分辨率this是一个右值指针而不是一个const左值指针.
从程序员的角度来看,是否存在这种区别产生真正差异的情况,例如可以使用const左值指针而不能使用左值指针的上下文,其中可以使用左值指针不能使用const左值指针,或者差异会影响呼叫解决?
作为thisprvalue的一个明显后果&this是非法的.因此,内置的一元运算符提供&了一个示例"可以使用左值指针不能使用的左值指针".由于基本原因,直接绑定引用this是不可能的.
此外,prvalue-ness this意味着它this本身不能const或者volatile,因为标量rvalues不能具有cv限定类型.
基于这些区别,很难构建非深奥的现实代码示例.