左值引用类型的含义是什么

时间:2014-08-02 07:08:55

标签: c++ types

秒。 5.4 / 1 N3797说:

  

如果T是左值引用类型或右值,则结果为左值   如果T是右值引用,则引用函数类型和xvalue   对象类型。

这是什么意思?我知道左值表达是什么意思。我一直试图在标准中找到左值参考类型定义,但我不能。你能提供吗?

2 个答案:

答案 0 :(得分:2)

术语左值参考表示其中包含一个&的引用,例如:

int &x = whatever;
int const &y = whatever;

在C ++ 03中,左值引用是唯一的引用类型。在C ++ 11中,添加了右值引用,因此反义词左值引用被创造为非右值引用。

左值引用可以绑定到左值和右值(对非常量左值引用的限制不能绑定到临时对象);右值引用只能绑定到右值。

注意:universal references可以绑定到左值或右值,绑定后它们的行为类似于左值引用,或者像右值引用。

答案 1 :(得分:1)

lvalue reference中描述的The C++ Programming Language 4th Edition有两种类型,如下所示,

  • non-const lvalue reference是指参考用户可以写入的对象。
  • const lvalue reference是指一个常量,从参考用户的角度来看是不可变的。

另外,

  • rvalue reference是指临时对象,引用的用户可以(通常会)修改该临时对象,假设该对象永远不会再次使用。