ノート 2/17
最近再びC++を書くようになった。元々そんなに書いていないが、リハビリ中。
#include <tuple> #include <functional> template <class Tuple, class F> void g(Tuple&& tuple, F&& f) { std::apply([](auto&& ...args) { (f(args), ...); }, tuple); }
tupleに対してf(x_0), f(x_1), ..., f(x_n-1)がやりたかった。
仕組みをメモ
(1) applyによりtupleを分解する
(2) fold式 (f(args), ...)により(f(args#0), (f(args#1), (f(args#2), (...) )))を書いたことになる
参照
cpp17book/019-cpp17-core-fold-expressions.md at master · EzoeRyou/cpp17book · GitHub