先日の記事にて、C++にラムダ式の再帰関数が欲しいと書いたのですが、調べたらstackoverflowにラムダ式での再帰関数を実現しようとしているコードがありました。
#include <functional>
#include <iostream>
int main()
{
std::function<int (int)> fact;
fact = [&fact](int n){ return n == 0 ? 1 : n * fact(n - 1); };
std::cout << fact(5) << std::endl;
}
面白いですね。