在工作的过程中,lamda表达式的
重点:
1.function对象存储函数指针。
2.lamada表达式&和=捕捉的方式
lamda传入引用&,导致作用域消失,最终报错
std::function<void()> pFun;
void GetNum1(const std::function<void()>& fun)
{pFun = fun;
}void fun()
{if (pFun){pFun();}
}void GetNum(const std::function<void(int)> fun1)
{//传入&auto Data = [&]() {fun1(10); };GetNum1(Data);
}void Get(int num)
{std::cout << num << std::endl;
}int main() {GetNum(Get);fun();return 0;
}
lamda传入赋值=,正确反馈
std::function<void()> pFun;
void GetNum1(const std::function<void()>& fun)
{pFun = fun;
}void fun()
{if (pFun){pFun();}
}void GetNum(const std::function<void(int)> fun1)
{//传入&auto Data = [=]() {fun1(10); };GetNum1(Data);
}void Get(int num)
{std::cout << num << std::endl;
}int main() {GetNum(Get);fun();return 0;
}