先日の記事にて、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; }
面白いですね。