网上能找到一个lambda递归调用的例子,稍微有点复杂,只留下本质,给他简化一下:
#include <functional>
void T01()
{
//auto lpfn = [&lpfn](int n) //使用auto关键字方式是通不过编译的
//std::function<void(int)>lpfn; //std::function定义需要头文件<functional>
std::function<void(int)> lpfn = [&lpfn](int n) //定义和初始化lpfn也可以写在同一行
{
if (n == 0)
return;
lpfn(n - 1);
};
lpfn(10);
}
VC2022下测试可用