码迷,mamicode.com
首页 >  
搜索关键字:右值引用    ( 182个结果
【C++11新概念】:右值引用
C语言原始定义:在C语言中表示位于赋值运算符两侧的两个值,左边的就叫左值,右边的就叫右值。 左值: 地址,内存中的具体空间,可以被读写;例如变量 左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储 右值: 数据,例如1,‘哈哈哈哈’ 右值指的是引用了一个存储在
分类:编程语言   时间:2016-03-20 19:42:39    阅读次数:207
(译)C++11中的Move语义和右值引用
郑重声明:本文是笔者网上翻译原文,部分有做添加说明,所有权归原文作者! 地址:http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html C++一直致力于生成快速的程序。不幸的是,直到C++
分类:编程语言   时间:2016-03-14 08:18:27    阅读次数:255
Item 24: 区分右值引用和universal引用
本文翻译自《effective modern C++》,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 古人曾说事情的真相会让你觉得很自在,但是在适当的情况下,一个良好的谎言同样能解放你。这个Item就是这样一个谎言。但是,因为我们在和软件打交道,所以让我们避开“谎言”这个词,换句话来说:本Item是由“抽象”组成的。为了声明一个指向T类型的右值引用,你会写T&&。因此我们可以“合理”地...
分类:其他好文   时间:2016-03-07 22:44:30    阅读次数:270
error C2662 无法将左值绑定到右值 —— 变量永远是左值,即使它的类型为右值引用
1 #include <utility> 2 3 struct A 4 { 5 void f() && { } 6 }; 7 8 void g(A &&a) 9 { 10 a.f(); //error, a是左值 11 std::move(a).f(); //fine 12 } 13 14 int
分类:其他好文   时间:2016-03-04 22:22:29    阅读次数:345
我是如何明白C++的move semantics(右值引用)和perfect forwarding(完美转发)的
其实主要就是三篇文章(博客): 首推这篇。 http://thbecker.net/articles/rvalue_references/section_01.html 从这里你可以知道什么时候你会知道,什么时候能够 “链式地” 调用移动构造函数而什么时候不能 ,明白其中过程(特别是什么时候不能)的
分类:编程语言   时间:2016-02-28 18:12:49    阅读次数:168
VS2012 error C2664: “std::make_pair”:无法将左值绑定到右值引用
例如:_mapTransportInfos.insert(std::make_pair<uint32, CTransportInfoPtr>(iter_t->m_nID, pinfo));这句代码在vs2012的c++11就无法编译,报2664错误。可以用如下强制转换来实现: 第一种方法(我这没成功
分类:其他好文   时间:2016-02-27 13:37:49    阅读次数:266
[C/C++不常见语法特性]_[初级]_[左值-右值-lvalue-rvalue]
场景: 1. C++11 引入了std::move,它可以高效率的从一个左值资源移动到另一个左值资源里, 这个过程不需要再创建新的资源. 这对std::string,std::vector这种标准库的资源 操作更加精炼.使用标准库时会大量使用这个std::move模板函数. 2. 在std::move的源码里又涉及到std::remove_reference 模板结构体,这个结构体又涉及到 "右值引用声明(Rvalue Reference Declarator: &&)", 所以这里还是讲...
分类:编程语言   时间:2016-02-19 10:47:52    阅读次数:313
C++11新特性之move与forward
1、move:返回arg的右值引用。 template <class T> typename remove_reference<T>::type&& move (T&& arg) noexcept; 示例: class MemoryBlock { public: explicit MemoryBlo
分类:编程语言   时间:2016-02-15 21:15:46    阅读次数:180
C++ 11 右值引用以及std::move
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/46779063 新类型: int和int&是什么?都是类型。int是整数类型,int&则是整数引用类型。相同int&&也是一个类型。两个引號&&是C++ 11提出的一个新的引用类型。记住,这
分类:编程语言   时间:2016-01-30 02:07:53    阅读次数:259
C++11新特性之 std::forward(完美转发)
上篇博客对右值、右值引用都做了简要介绍。我们也要时刻清醒,有时候右值会转为左值,左值会转为右值。 (也许“转换”二字用的不是很准确)如果我们要避免这种转换呢? 我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完美转发。std::forward就可以保存参数的左值或右值特性。因为是这样描述的: When used according to the following...
分类:编程语言   时间:2016-01-09 01:04:30    阅读次数:234
182条   上一页 1 ... 9 10 11 12 13 ... 19 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!