参考自:C++ 如何自动推导递归 lambda 函数的类型? - 知乎
auto f1 = []( int j) ->int {
if (j == 0)return 0;
else return f1(j - 1);
};
//直接调用lambda表达式本身,lambda无法推断其类型
但是用个引用参数引用自己就可以了。感觉其是通过调用的方式来推测出引用的是什么类型
//lambda表达式自身递归调用
auto f1 = [](auto&& me, int j) ->int{
if (j == 0)return 0;
else return me(me, j - 1);
};
//cout << f1(f1, 5) << endl;