首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

、左引用,右,右引用

c++11中引入了右引用和移动语义,可以避免无谓的复制,提高程序性能,用的不多,每次看过了就忘了,整理下; 1、左和右: 左是指表达式结束后依然存在的持久化对象; 右是指表达式结束时就不再存在的临时对象...; 比方: int i=0;// i是左, 0是右 2、左引用: c++98中的引用很常见了,就是给变量取了个别名,在c++11中,因为增加了右引用(rvalue reference)的概念,所以...;   //getTemp()的返回是右(临时变量) 总结一下,其中T是一个具体类型: 左引用, 使用 T&, 只能绑定左; 右引用, 使用 T&&, 只能绑定右; 常量左, 使用 const...T&, 既可以绑定左又可以绑定右; 已命名的右引用,编译器会认为是个左; 编译器有返回优化,但不要过于依赖; Q:下面涉及到一个问题:x的类型是右引用,指向一个右,但x本身是左还是右呢...参考:[c++11]我理解的右引用、移动语义和完美转发 https://www.jianshu.com/p/d19fc8447eaa C++ 11 左,右,左引用,右引用,std::move

73110
您找到你想要的搜索结果了吗?
是的
没有找到

与右

与右 问题阐述 赋值表达式中可以分为左(lvaule)和右(rvaule),那么什么是左和右?数组名做为左右时又具有怎样的意义? lvalue估计来源于left value。...就是可以修改的。 rvalue估计来源于right value。处于赋值语句右边,是只读的不可修改的。 左是指可以被赋值的表达式,也就是赋值符号左侧的表达式。...由此可以知道,右就是指出现在赋值符右侧的表达式。每一个赋值语句都有一个左和一个右。 (1)左必须是变量。左必须是内存中一个可存储的变量,而不能是一个常量或 者表达式。...一条赋值语句必须有一个左和一个右,否则将无法通过编译。 数组名作为左右的意义: 当数组名作为左时,是错误的。...数组名代表数组的首地址,所以数组名作为右时将数组的首地址赋给赋值符左侧的变量。 综上,数组名不可以作为左,而数组中的元素是可以作为左的。

49410

和右、左引用与右引用、移动语句(2)「建议收藏」

术语rvalue右指的是存储在存储器中某个地址的数据。 rvalue是一个不能赋值的表达式。文字常量和变量都可以作为右。当左出现在需要右的上下文中时,左将隐式转换为右。...将亡 在C++11之前的右和C++11中的纯右是等价的。C++11中的将亡是随着右引用的引入而新引入的。换言之,“将亡”概念的产生,是由右引用的产生而引起的,将亡与右引用息息相关。...在C++11中所有的必属于左、右两者之一,右又可以细分为纯右、将亡。在C++11中可以取地址的、有名字的就是左,反之,不能取地址的、没有名字的就是右(将亡或纯右)。...区分清楚了左与右,我们再来看看左引用。左引用根据其修饰符的不同,可以分为非·常量左引用和常量左引用。 左引用、右引用 左引用就是对一个左进行引用的类型。...常量左引用可以绑定到所有类型的,包括非常量左、常量左、非常量右和常量右。 可以看出,使用左引用时,我们无法区分出绑定的是否是非常量右的情况。

2.4K20
领券