C++中的值与引用

本文探讨了C++11引入的右值引用,包括左值、右值和它们的引用类型。介绍了左值和右值的不同解释,并讨论了引用的叠加性。移动语义通过std::move实现,而完美转发由std::forward完成,解决右值引用在特定情况下的转换问题。
摘要由CSDN通过智能技术生成

值与引用,准确的说是C++11后的值与引用。

因为这时候才明确的出现了右值引用,然后能讨论的东西就出来了,

那就是 左值、右值当然还有对应的左值引用和右值引用。

我第一次接触右值引用的时候是在看SFINAE相关方面的内容时,

当我第一次看到了 auto&& 这种写法,一脸蒙蔽,这是啥啊?

好在有标准文档的帮助,让我了解到了右值引用,但随之而来的,移动语义和完美转发等术语真的让我头大。

可不懂就得学啊,经过一段时间的摸索,终于对这些概念有了较清楚的认识了。

左值右值,通俗的讲就是左值是可以出现在等号的左边,能够被赋值,除了左值以外都是右值,也可以理解为出现在等号右边的值。

铺开来讲,你可能听说过:亡值,泛左值,纯右值 等术语。

有以下定义:

在c++11以后,表达式按值类别分,必然属于以下三者之一:左值(left value,lvalue),将亡值(expiring value,xvalue),纯右值(pure rvalue,pralue)。其中,左值和将亡值合称泛左值(generalized lvalue,glvalue),纯右值和亡值合称右值(right value,rvalue)。见下图,

左值右值有很多种方法解释࿱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值