7#ifndef EC_META_FOR_EACH_HPP
8#define EC_META_FOR_EACH_HPP
18 template <
typename Function,
typename TTuple, std::size_t... Indices>
19 constexpr void forEachHelper(
20 Function&& function, TTuple tuple, std::index_sequence<Indices...>)
22 return (
void)std::initializer_list<int>{(function(std::move(
23 std::get<Indices>(tuple))), 0)...};
26 template <
typename TTypeList,
typename Function>
27 constexpr void forEach(Function&& function)
29 using TTuple = EC::Meta::Morph<TTypeList, std::tuple<> >;
30 using TTupleSize = std::tuple_size<TTuple>;
31 using IndexSeq = std::make_index_sequence<TTupleSize::value>;
34 std::forward<Function>(function), TTuple{}, IndexSeq{});