左值引用类型是什么意思



Sec。5.4/1 N3797说:

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

这是什么意思?我知道什么是左值表达式。我一直试图在Standard中找到左值引用类型定义,但我做不到。你能提供吗?

术语左值引用表示其中有一个&的引用,例如:

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

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

左值引用既可以绑定到左值也可以绑定到右值(有关于非常量左值引用不能绑定到临时对象的限制(;右值引用只能绑定到右值。

注意:通用引用可能绑定到左值或右值,绑定后它们的行为要么像左值引用,要么像右值引用。

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

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

此外,

  • rvalue reference指的是一个临时对象,引用的用户可以(通常也会(修改该对象,假设该对象将不再使用

相关内容

  • 没有找到相关文章

最新更新