7 #include "arg_router/traits.hpp"
9 #include <boost/mp11/algorithm.hpp>
32 template <
typename F,
typename Tuple>
33 constexpr std::enable_if_t<traits::is_tuple_like_v<std::decay_t<Tuple>>>
tuple_iterator(
37 constexpr
auto N = std::tuple_size_v<std::decay_t<Tuple>>;
38 boost::mp11::mp_for_each<boost::mp11::mp_iota_c<N>>([&](
auto i) { f(i, std::get<i>(tuple)); });
49 template <
typename F,
typename... T>
52 tuple_iterator(std::forward<F>(f), std::tuple{std::forward<T>(pack)...});
74 template <
typename Tuple,
typename F>
77 constexpr
auto N = std::tuple_size_v<std::decay_t<Tuple>>;
78 boost::mp11::mp_for_each<boost::mp11::mp_iota_c<N>>([&](
auto i) { f(i); });
constexpr std::enable_if_t< traits::is_tuple_like_v< std::decay_t< Tuple > > > tuple_iterator(F &&f, Tuple &&tuple)
constexpr std::enable_if_t< traits::is_tuple_like_v< std::decay_t< Tuple > > > tuple_type_iterator(F &&f)