C语言原始定义:在C语言中表示位于赋值运算符两侧的两个值,左边的就叫左值,右边的就叫右值。 左值: 地址,内存中的具体空间,可以被读写;例如变量 左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储 右值: 数据,例如1,‘哈哈哈哈’ 右值指的是引用了一个存储在
分类:
编程语言 时间:
2016-03-20 19:42:39
阅读次数:
207
郑重声明:本文是笔者网上翻译原文,部分有做添加说明,所有权归原文作者! 地址:http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html C++一直致力于生成快速的程序。不幸的是,直到C++
分类:
编程语言 时间:
2016-03-14 08:18:27
阅读次数:
255
本文翻译自《effective modern C++》,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢!
古人曾说事情的真相会让你觉得很自在,但是在适当的情况下,一个良好的谎言同样能解放你。这个Item就是这样一个谎言。但是,因为我们在和软件打交道,所以让我们避开“谎言”这个词,换句话来说:本Item是由“抽象”组成的。为了声明一个指向T类型的右值引用,你会写T&&。因此我们可以“合理”地...
分类:
其他好文 时间:
2016-03-07 22:44:30
阅读次数:
270
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
其实主要就是三篇文章(博客): 首推这篇。 http://thbecker.net/articles/rvalue_references/section_01.html 从这里你可以知道什么时候你会知道,什么时候能够 “链式地” 调用移动构造函数而什么时候不能 ,明白其中过程(特别是什么时候不能)的
分类:
编程语言 时间:
2016-02-28 18:12:49
阅读次数:
168
例如:_mapTransportInfos.insert(std::make_pair<uint32, CTransportInfoPtr>(iter_t->m_nID, pinfo));这句代码在vs2012的c++11就无法编译,报2664错误。可以用如下强制转换来实现: 第一种方法(我这没成功
分类:
其他好文 时间:
2016-02-27 13:37:49
阅读次数:
266
场景:
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
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
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/46779063 新类型: int和int&是什么?都是类型。int是整数类型,int&则是整数引用类型。相同int&&也是一个类型。两个引號&&是C++ 11提出的一个新的引用类型。记住,这
分类:
编程语言 时间:
2016-01-30 02:07:53
阅读次数:
259
上篇博客对右值、右值引用都做了简要介绍。我们也要时刻清醒,有时候右值会转为左值,左值会转为右值。
(也许“转换”二字用的不是很准确)如果我们要避免这种转换呢?
我们需要一种方法能按照参数原来的类型转发到另一个函数中,这才完美,我们称之为完美转发。std::forward就可以保存参数的左值或右值特性。因为是这样描述的:
When used according to the following...
分类:
编程语言 时间:
2016-01-09 01:04:30
阅读次数:
234