标签:
为了支持移动操作(包括移动构造函数和移动赋值函数),C++才引入了一种新的引用类型——右值引用,可以自由接管右值引用的对象内容。
1 int &&i = 1; 2 int b = 2; 3 cout << i << endl; 4 i = b; 5 cout << i << endl; 6 //输出1 2
;省略上面代码 int &&i = 1; 00C044DE mov dword ptr [ebp-14h],1 00C044E5 lea eax,[ebp-14h] 00C044E8 mov dword ptr [ebp-8],eax int b = 2; 00C044EB mov dword ptr [ebp-20h],2 ;省略输出代码 i = b; 00C04523 mov eax,dword ptr [ebp-8] 00C04526 mov ecx,dword ptr [ebp-20h] 00C04529 mov dword ptr [eax],ecx ;省略余下代码
1 int&&temp =0; 2 int&&i = temp;
1 int &&temp = 0; 2 int &&i = 1; 3 i = temp;
1 class A{ 2 public: 3 int b; 4 int a; 5 char c[256]; 6 }; 7 void f(A a) 8 { 9 ; 10 } 11 int main(int argc, char const *argv[]) 12 { 13 A &&a = A(); 14 f(a); 15 }
本文链接:【原创】深入理解c++的右值引用 http://www.cnblogs.com/cposture/p/4927712.html
标签:
原文地址:http://www.cnblogs.com/cposture/p/4927712.html