ラムダ式を使う: フィボナッチ数

fibがautoはさすがにダメだった。当たり前のような気もする。
あと参照によるキャプチャじゃないとSEGV。

#include <iostream>
#include <functional>

using namespace std;

int main() {
  function<int (int)> fib = [&](int n) -> int {
    if (n < 2) {
      return n;
    } else {
      return fib(n - 2) + fib(n - 1);
    }
  };

  for (int i = 0; i < 10; i++) {
    cout << fib(i) << endl;
  }

  return 0;
}


0
1
1
2
3
5
8
13
21
34
続行するには何かキーを押してください . . .
自分自身もキャプチャできるのかー。