Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
tuple_for_each.h
Go to the documentation of this file.
1#pragma once
2
8
9namespace di::vocab {
10namespace detail {
11 template<typename F, typename Tup, typename Ind>
13
14 template<size_t... indices, typename F, typename Tup>
15 struct TupleForEachValid<F, Tup, meta::ListV<indices...>> {
17 };
18}
19
20template<typename F, concepts::TupleLike Tup>
22constexpr void tuple_for_each(F&& function, Tup&& tuple) {
23 return apply(
24 [&]<typename... Types>(Types&&... values) {
25 (void) (function::invoke(function, util::forward<Types>(values)), ...);
26 },
27 util::forward<Tup>(tuple));
28}
29}
30
31namespace di {
33}
Definition invoke.h:58
Definition as_bool.h:8
constexpr auto invoke
Definition invoke.h:100
Definition merge_interfaces.h:6
Definition erasure_cast.h:7
Definition lazy.h:165
constexpr auto apply(F &&f, Tup &&tuple) -> decltype(detail::apply_impl(meta::MakeIndexSequence< meta::TupleSize< Tup > > {}, util::forward< F >(f), util::forward< Tup >(tuple)))
Definition apply.h:22
constexpr void tuple_for_each(F &&function, Tup &&tuple)
Definition tuple_for_each.h:22
Definition zstring_parser.h:9
Definition tuple_for_each.h:12
static constexpr bool value
Definition tuple_for_each.h:16