23 template<
typename TUPLE,
typename FUNC>
27 template<
typename TUPLE,
typename FUNC>
36 template<std::
size_t N, std::
size_t I,
typename TUPLE,
typename FUNC>
37 struct impl_tuple_for_each
39 static void call(
const TUPLE& t, FUNC f)
41 f(std::get<N - I>(t));
42 impl_tuple_for_each<N, I - 1, TUPLE, FUNC>::call(t, f);
46 template<std::
size_t N,
typename TUPLE,
typename FUNC>
47 struct impl_tuple_for_each<N, 1, TUPLE, FUNC>
49 static void call(
const TUPLE& t, FUNC f)
51 f(std::get<N - 1>(t));
56 template<
typename TUPLE,
typename FUNC>
57 struct impl_tuple_for_each<0, 0, TUPLE, FUNC>
59 static void call(
const TUPLE&, FUNC)
63 template<std::
size_t N, std::
size_t I,
typename TUPLE,
typename FUNC>
64 struct impl_tuple_reversed_for_each
66 static void call(
const TUPLE& t, FUNC f)
68 f(std::get<N - I - 1>(t));
69 impl_tuple_reversed_for_each<N, I + 1, TUPLE, FUNC>::call(t, f);
73 template<std::
size_t N,
typename TUPLE,
typename FUNC>
74 struct impl_tuple_reversed_for_each<N, N, TUPLE, FUNC>
76 static void call(
const TUPLE&, FUNC)
81 template<
typename TUPLE,
typename FUNC>
82 struct impl_tuple_reversed_for_each<0, 0, TUPLE, FUNC>
84 static void call(
const TUPLE&, FUNC)
90 template<
typename TUPLE,
typename FUNC>
93 internal::impl_tuple_for_each<
94 std::tuple_size<TUPLE>::value,
95 std::tuple_size<TUPLE>::value,
101 template<
typename TUPLE,
typename FUNC>
104 internal::impl_tuple_reversed_for_each<
105 std::tuple_size<TUPLE>::value, 0, TUPLE, FUNC>
void tuple_reversed_for_each(const TUPLE &t, FUNC f)
Definition: tuple_utils.h:102
Definition: basic_shared_pointer.h:20
void tuple_for_each(const TUPLE &t, FUNC f)
Definition: tuple_utils.h:91