码迷,mamicode.com
首页 >  
搜索关键字:移动语义    ( 62个结果
为 Notepad++ 编译 C++ 提供 C++11支持
怎样配置环境可以参考 他人的博客可是这篇博客中没有提到 C++11 标准的问题, 而我经常使用 C++11 的一些特性, 比如移动语义, 移动构造什么的, 这就蛋疼了。google 了相关内容, 可是一无所获, SO 里也没有, 直到我在贴吧看到了一个贴 怎样支持 c11于是我就照猫画虎, 把编译命...
分类:编程语言   时间:2015-02-17 12:52:34    阅读次数:210
【转】int && 非常量右值
C++ 11中引入的右值引用正好可用于标识一个非常量右值。C++ 11中用&表示左值引用,用&&表示右值引用,如:int &&a = 10右值引用根据其修饰符的不同,也可以分为非常量右值引用和常量右值引用。C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move ...
分类:其他好文   时间:2015-01-08 19:58:59    阅读次数:161
看完这个你还不理解右值引用和移动构造 你就可以来咬我(上)
共分三篇,这是第一篇。另外两篇,看完这个你还不理解右值引用和移动构造  你就可以来咬我(上),看完这个你还不理解右值引用和移动构造  你就可以来咬我(上)。 C++ 右值引用 & 新特性 C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。...
分类:移动开发   时间:2015-01-02 16:07:31    阅读次数:239
Rust 的移动语义
新接触 Rust 时你很容易在编译代码时看到编译器给出的各种类似于“值已移动到此处”的报错,这就涉及到 Rust 的移动语义,是语言中的重要概念。那么移动语义意味着什么呢?Rust 的移动语义是为 Rust 的所有权这个概念服务的。没有移动语义所有权就无从谈起;Rust 的生命期概念又完全是为所有权...
分类:移动开发   时间:2014-12-17 18:20:16    阅读次数:227
C++11学习笔记:std::move和std::forward源码分析
std::move和std::forward是C++0x中新增的标准库函数,分别用于实现移动语义和完美转发。 下面让我们分析一下这两个函数在gcc4.6中的具体实现。 预备知识 引用折叠规则: X& + & => X& X&& + & => X& X& + && => X& X&& + && => X&& 函数模板参数推导规则(右值引用参数部分): 当函数模板的模板参数为...
分类:编程语言   时间:2014-11-25 18:30:49    阅读次数:1005
C++11之右值引用(二):右值引用与移动语义
上节我们提出了右值引用,可以用来区分右值,那么这有什么用处? 问题来源 我们先看一个C++中被人诟病已久的问题: 我把某文件的内容读取到vector中,用函数如何封装? 大部分人的做法是: void readFile(const string &filename, vector &words) { ...
分类:移动开发   时间:2014-10-17 00:49:13    阅读次数:352
C++ 11 move constructor 何时调用?
C++11支持移动语义。一:为什么需要移动语义和什么是移动语义我们先来看看C++11之前的复制过程。假设有下列代码:vector v1(1000000);//v1存放着100W个string,假设每个string长度为1000vector v2(v1);//使用v1初始化v2vector和strin...
分类:编程语言   时间:2014-09-24 19:39:38    阅读次数:1895
移动语义、移动构造函数和右值引用
C++引用现在分为左值引用(能取得其地址)和右值引用(不能取得其地址)。其实很好理解,左值引用中的左值一般指的是出现在等号左边的值(带名称的变量,带*号的指针等一类的数据),程序能对这样的左值进行引用获得其地址;右值引用中的右值一般指的就是出现在等号右边的值(右值引用:常量、表达式、函数非左值引用的...
分类:移动开发   时间:2014-09-24 15:50:57    阅读次数:258
C++11线程指南(五)--线程的移动语义实现
1. 线程的移动语义实现   基于前面几章介绍的移动语义,我们用它来实现线程。 #include #include #include #include #include int main() { std::vector workers; for (int i = 0; i < 5; i++) { auto t = std::thread([i]() { std::...
分类:移动开发   时间:2014-08-09 11:36:27    阅读次数:276
C++11线程指南(四)--右值引用与移动语义
1. 按值传递   什么是按值传递?   当一个函数通过值的方式获取它的参数时,就包含有一个拷贝的动作。编译器知道如何去进行拷贝。如果参数是自定义类型,则我们还需要提供拷贝构造函数,或者赋值运算符来进行深拷贝。然而,拷贝是需要代价的。在我们使用STL容器时,就存在大量的拷贝代价。当按值传递参数时,会生产临时对象,浪费宝贵的CPU以及内存资源。   需要找到一个减少不必要拷贝的方法。移动语义就...
分类:移动开发   时间:2014-08-08 02:04:05    阅读次数:417
62条   上一页 1 ... 4 5 6 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!