11 #ifndef TLX_META_VMAP_FOREACH_HEADER 12 #define TLX_META_VMAP_FOREACH_HEADER 27 namespace meta_detail {
30 template <
typename Functor,
typename Arg>
32 return std::make_tuple(
33 std::forward<Functor>(f)(std::forward<Arg>(arg)));
37 template <
typename Functor,
typename Arg,
typename... MoreArgs>
39 auto x = std::forward<Functor>(f)(std::forward<Arg>(arg));
40 return std::tuple_cat(
41 std::make_tuple(std::move(x)),
43 std::forward<Functor>(f), std::forward<MoreArgs>(rest) ...));
50 template <
typename Functor,
typename... Args>
53 std::forward<Functor>(f), std::forward<Args>(args) ...);
60 #endif // !TLX_META_VMAP_FOREACH_HEADER