explicit关键字
https://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.html
c++仿函数
https://www.cnblogs.com/decade-dnbc66/p/5347088.html
c++ lamda
https://blog.csdn.net/u010984552/article/details/53634513
https://www.jianshu.com/p/d686ad9de817
1.lamda函数的参数捕捉
auto multiply_x = [&x](int a) { x = x + 1; return a * x; }
此行只是定义了一个可调用对象,只有调用后x的值才会变化
#include "pch.h"
#include<iostream>
int main()
{
int x = 10;
//auto add_x = [x](int a) { return a + x; }; // 复制捕捉x
std::cout << "x的初始值为" << x << std::endl; //10
auto multiply_x = [&x](int a) { x = x + 1; return a * x; }; // 引用捕捉x
std::cout << "x的值为" << x << std::endl;//10
std::cout << multiply_x(10) << std::endl; //110
std::cout << "x的之后值为" << x << std::endl;//11
return 0;
}