后端开发
右值引用 标签描述

在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C98/03标准。从C0x到C11,C标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C98/03,C11则带来了数量可观的变化,其中包含了约140个新特性,以及对C03标准中约600个缺陷的修正,这使得C11更像是从C98/03中孕育出的一种新语言。相比较而言,C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不...

左值是指在内存中有确定位置并且可以被取地址的表达式,它通常指代一个具有持久性(Permanent)和唯一性(Identity)的对象右值是指表示值的表达式,它通常是一个临时的、没有持久性和唯一性的对象或字面值常量右值分为:纯右值(字面常量)和将亡值(更侧重于自定义类型的函数的返回值,表达式的返回值)。 当构造传左值,就走拷贝构造,当构造传右值,就走移动构造。 对于左值,我们后续还要使用,所以只能进行深拷贝,完成拷贝构造。 但对于右值(将亡值),可以直接进行资源的交换,将this和将亡值交换资源。 右值引用主要用于以下两个目的: 转移语义(MoveSemantics):右值引用允许我们将资源(如...