可能重复:
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
是否有表示当前拉姆达因此它可以递归调用本身的任何表达?