码迷,mamicode.com
首页 >  
搜索关键字:左值    ( 392个结果
C++之++运算符重载问题
记录++之前先记一下左右值和存取数据的问题 数据的存放分三个部分,堆区,栈区和静态变量区 左值可以更改,右值不能更改 栈区和堆区存储的都是左值,可以随意更改其值,静态变量区部分数据是右值,比如const修饰的值,函数创建的临时变量,都不可更改 前缀++重载,直接直接++操作,返回本身即可 后缀++重 ...
分类:编程语言   时间:2018-07-28 00:15:52    阅读次数:158
C++11之右值引用与移动构造
右值引用 右值定义: 通俗来讲,赋值号左边的就是左值,赋值号右边的就是右值。可以取地址是左值,不可以取地址的是右值。C++11,之前没有明确提出右值的概念,所以 C++11 以前这些说活都是正确的。 C++11 中的左值,仍然等同于 C++98 左值。C++11 中的右值,除了 C++98 中的右值 ...
分类:移动开发   时间:2018-07-15 14:53:40    阅读次数:214
C++标准库之右值引用相关:引用折叠
引用折叠 引用折叠出现的情况在于范型编程时。 void f(T&& param); f(10); int x = 10; f(x); 这两者都可运行成功。 由于存在T&&这种未定的引用类型,当它作为参数时,有可能被一个左值引用或右值引用的参数初始化,这是经过类型推导的T&&类型,相比右值引用(&&) ...
分类:编程语言   时间:2018-07-03 23:42:39    阅读次数:150
完美转发(perfect forwarding)、universal reference
首先要分清: C++里的值只有两种值:左值、右值。—— 其本质应该是内存中存储的值/instance分两种:一种是持久的,一种是“短暂的” 也只有两种引用: 左值引用、右值引用。 ——引用,就是这个内存地址的助记符(别名)。 1. 左值引用 需绑定、也只能绑定 左值。 同理,右值引用 需绑定、也只能 ...
分类:其他好文   时间:2018-07-02 20:21:17    阅读次数:187
c++11 右值引用和移动语义
什么是左值、右值 最常见的误解:等号左边的就是左值,等号右边的就是右值左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象右值是指表达式结束时就不再存在的临时对象区分:能对表达式进行取地址,则为左值 否则为右值 为什么引入右值引用?std::vector<String> v;v.p ...
分类:移动开发   时间:2018-06-26 00:41:45    阅读次数:236
智能指针
C++98中的智能指针通过一个模板类 来实现, 操作符返回的指针可以交由它来管理,程序员不用再显式的调用 ,这在一定程度上避免了堆内存忘记释放的问题; 不过 有一些缺点,比如拷贝时返回一个左值,不能调用delete[]等 。 C++11中废弃了 ,改用 等智能指针来自动回收堆分配对象,使内存管理更安 ...
分类:其他好文   时间:2018-06-23 18:51:34    阅读次数:168
完美转发
https://github.com/changkun/modern-cpp-tutorial/blob/master/book/zh-cn/03-runtime.md 完美转发 前面我们提到了,一个声明的右值引用其实是一个左值。这就为我们进行参数转发(传递)造成了问题: void referenc ...
分类:其他好文   时间:2018-06-08 18:06:19    阅读次数:182
Java运算符
1.赋值运算符 = 表示:取右边的值(即右值),把它复制给左边(即左值)。右值可以是任意的常量、变量或表达式(只要可以生成一个值)。 左值必须是一个明确的、已命名的变量 += 表示: 左边的变量值,加上右边的值,再赋值给左边的值 相似的有-=、/=、*=、%= 2.算数运算符 算数运算符符有+ - ...
分类:编程语言   时间:2018-05-26 11:54:57    阅读次数:194
左值、右值、右值引用与move()、forward()
1、左值(lvalue):可以进行取地址(&)运算的是左值。或者有时候可以理解为 既能够出现在等号左边也能出现在等号右边的变量(或表达式)。 2、右值(rvalue):不可以进行取地址(&)运算的是右值。或者有时候可以理解为 只能出现在等号右边的变量(或表达式)。 常见的右值有 字面量、函数返回的临 ...
分类:其他好文   时间:2018-05-25 13:37:01    阅读次数:213
C++11新特性之 std::forward(完美转发)(转)
我们也要时刻清醒,有时候右值会转为左值,左值会转为右值。 (也许“转换”二字用的不是很准确) 如果我们要避免这种转换呢? 我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完美转发。 std::forward就可以保存参数的左值或右值特性。 因为是这样描述的: When u ...
分类:编程语言   时间:2018-05-23 20:34:33    阅读次数:181
392条   上一页 1 ... 10 11 12 13 14 ... 40 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!