重複の可能性:
c++0x の再帰ラムダ関数
これは昔ながらの再帰関数です。
int fak(int n)
{
return (n <= 1) ? 1 : n * fak(n - 1);
}
このような再帰関数をラムダ関数としてどのように記述すればよいでしょうか?
[](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
再帰的に自分自身を呼び出すことができるように、現在のラムダを示す式はありますか?