メタ関数版のfoldは試したけど関数版は試してなかったなーと思ったのでやってみた。
#include <iostream> #include <functional> #include <boost/fusion/container/vector.hpp> #include <boost/fusion/algorithm/iteration/fold.hpp> namespace fusion = boost::fusion; int main() { const fusion::vector<int, int, int> v(1, 2, 3); std::cout << fusion::fold(v, 0, std::plus<int>()) << std::endl; // 6 }
【参考】
boost::fusion::fold