再帰ラムダ関数の型定義を省略する方法

C++では、通常、再帰呼び出しを行うラムダ関数には型定義を与える必要がある。 しかし、少し冗長な書き方をすることで型定義を省略できる。 auto dfs = [&](auto dfs, int u) -> void { for (auto v : g[u]) dfs(dfs, v); }; -> voidの部分は忘れやすいので注意。 型定義を省略しない書き方は次のようになる。 function<void(int)> df</void(int)>…