7#ifndef EC_META_FOR_EACH_DOUBLE_TUPLE_HPP
8#define EC_META_FOR_EACH_DOUBLE_TUPLE_HPP
18 template <
typename Function,
typename TupleFirst,
19 typename TupleSecond, std::size_t... Indices>
20 constexpr void forEachDoubleTupleHelper(
21 Function&& function, TupleFirst t0, TupleSecond t1,
22 std::index_sequence<Indices...>)
24 return (
void)std::initializer_list<int>{(function(
25 std::get<Indices>(t0), std::get<Indices>(t1), Indices), 0)...};
28 template <
typename TupleFirst,
typename TupleSecond,
typename Function>
29 constexpr void forEachDoubleTuple(
30 TupleFirst&& t0, TupleSecond&& t1, Function&& function)
32 using TTupleSize = std::tuple_size<TupleFirst>;
33 using IndexSeq = std::make_index_sequence<TTupleSize::value>;
35 return forEachDoubleTupleHelper(
36 std::forward<Function>(function),
37 std::forward<TupleFirst>(t0),
38 std::forward<TupleSecond>(t1),