可能是重复的问题:
C++0x中的递归lambda函数
这里是一个普通的递归函数:
int fak(int n)
{
return (n <= 1) ? 1 : n * fak(n - 1);
}
我该如何将这样一个递归函数写成lambda函数?
[](int n) { return (n <= 1) ? 1 : n * operator()(n - 1); }
// error: operator() not defined
[](int n) { return (n <= 1) ? 1 : n * (*this)(n - 1); }
// error: this wasn't captured for this lambda function
有没有一个表达式可以表示当前 lambda,以便它可以递归地调用自己?