@@ -69,7 +69,7 @@ void lambda_reference_capture() {
6969
7070#### 3. 隐式捕获  
7171
72- 手动书写捕获列表有时候是非常复杂的,这种机械性的工作可以交给编译器来处理,这时候可以在捕获列表中写一个  
72+ 手动书写捕获列表有时候是非常复杂的,这种机械性的工作可以交给编译器来处理,这时候可以在捕获列表中写一个
7373` & `  或 ` = `  向编译器声明采用引用捕获或者值捕获.
7474
7575总结一下,捕获提供了 Lambda 表达式对外部值进行使用的功能,捕获列表的最常用的四种形式可以是:
@@ -213,14 +213,14 @@ int main() {
213213
214214要弄明白右值引用到底是怎么一回事,必须要对左值和右值做一个明确的理解。
215215
216- ** 左值(lvalue, left value)** ,顾名思义就是赋值符号左边的值。准确来说,
216+ ** 左值**   (lvalue, left value),顾名思义就是赋值符号左边的值。准确来说,
217217左值是表达式(不一定是赋值表达式)后依然存在的持久对象。
218218
219- ** 右值(rvalue, right value)** ,右边的值,是指表达式结束后就不再存在的临时对象。
219+ ** 右值**   (rvalue, right value),右边的值,是指表达式结束后就不再存在的临时对象。
220220
221221而 C++11 中为了引入强大的右值引用,将右值的概念进行了进一步的划分,分为:纯右值、将亡值。
222222
223- ** 纯右值(prvalue, pure rvalue)** ,纯粹的右值,要么是纯粹的字面量,例如 ` 10 ` , ` true ` ;
223+ ** 纯右值**   (prvalue, pure rvalue),纯粹的右值,要么是纯粹的字面量,例如 ` 10 ` , ` true ` ;
224224要么是求值结果相当于字面量或匿名临时对象,例如 ` 1+2 ` 。非引用返回的临时变量、运算表达式产生的临时变量、
225225原始字面量、Lambda 表达式都属于纯右值。
226226
@@ -232,7 +232,7 @@ class Foo {
232232public:
233233        void bar() {
234234            right = "still rvalue"; // 此处字符串字面量为右值
235-         }  
235+         }
236236};
237237
238238int main() {
@@ -352,19 +352,19 @@ void foo() {
352352class A { 
353353public: 
354354    int *pointer; 
355-     A():pointer(new int(1)) {   
356-         std::cout << "构造" << pointer << std::endl;   
355+     A():pointer(new int(1)) { 
356+         std::cout << "构造" << pointer << std::endl; 
357357    } 
358-     A(A& a):pointer(new int(*a.pointer)) {   
359-         std::cout << "拷贝" << pointer << std::endl;   
358+     A(A& a):pointer(new int(*a.pointer)) { 
359+         std::cout << "拷贝" << pointer << std::endl; 
360360    } // 无意义的对象拷贝 
361-     A(A&& a):pointer(a.pointer) {   
361+     A(A&& a):pointer(a.pointer) { 
362362        a.pointer = nullptr; 
363-         std::cout << "移动" << pointer << std::endl;   
363+         std::cout << "移动" << pointer << std::endl; 
364364    } 
365-     ~A(){   
366-         std::cout << "析构" << pointer << std::endl;   
367-         delete pointer;   
365+     ~A(){ 
366+         std::cout << "析构" << pointer << std::endl; 
367+         delete pointer; 
368368    } 
369369}; 
370370// 防止编译器优化 
0 commit comments