iterate for each callable over the container
template<typename Container> void iterate(const Container& container) { } template<typename Container, typename F1, typename... Funs> void iterate(const Container& container, F1&& f1, Funs&& ...funs) { for (const auto& item : container) { f1(item); } iterate(container, funs...); }