11 #ifndef TLX_META_VMAP_FOR_RANGE_HEADER
12 #define TLX_META_VMAP_FOR_RANGE_HEADER
31 namespace meta_detail {
34 template <
size_t Index,
size_t Size,
typename Functor>
35 class VMapForRangeImpl
38 static auto call(Functor&& f) {
40 auto x = std::forward<Functor>(f)(StaticIndex<Index>());
41 return std::tuple_cat(
42 std::make_tuple(std::move(x)),
44 std::forward<Functor>(f)));
49 template <
size_t Index,
typename Functor>
53 static auto call(Functor&& ) {
54 return std::tuple<>();
61 template <
size_t Size,
typename Functor>
64 std::forward<Functor>(f));
68 template <
size_t Begin,
size_t End,
typename Functor>
71 std::forward<Functor>(f));
78 #endif // !TLX_META_VMAP_FOR_RANGE_HEADER