17 #ifndef AWALI_MISC_SUB_TUPLE_HH
18 #define AWALI_MISC_SUB_TUPLE_HH
33 template<
size_t Head,
size_t... Tail>
36 template<
typename Tuple>
38 template<
typename Tuple>
48 template<
typename Tuple>
49 using type = std::tuple<typename std::tuple_element<I,Tuple>::type>;
50 template<
typename Tuple>
54 return std::make_tuple(std::get<I>(t));
66 template<
typename Head,
typename... Tail>
68 using type = std::tuple<Tail...>;
71 template<
size_t I,
size_t N>
73 template<
typename Tuple,
typename... Values>
76 get(
const Tuple& t, Values & ... values)
85 template<
typename Tuple,
typename... Values>
88 get(
const Tuple&, Values & ... values)
91 return std::make_tuple(values...);
95 template<
typename Tuple>
112 template<
typename Tuple>
114 typename std::tuple_element<0,Tuple>::type,
117 template<
typename Tuple>
127 template<
typename Tuple>
130 template<
typename Tuple>
143 template<
size_t N,
typename T>
145 template<
typename Tuple>
147 typename std::tuple_element<0,Tuple>::type,
150 template<
typename Tuple>
160 template<
typename Tuple>
163 template<
typename Tuple>
166 return std::tuple_cat(std::make_tuple(x),
tuple_tail(t));
auto tuple_tail(const Tuple &t) -> typename tail_tuple< Tuple >::type
Definition: sub_tuple.hh:96
std::tuple< Tail... > type
Definition: sub_tuple.hh:68
Definition: sub_tuple.hh:65
Main namespace of Awali.
Definition: ato.hh:22
static auto get(const Tuple &, Values &... values) -> typename tail_tuple< Tuple >::type
Definition: sub_tuple.hh:88
Definition: sub_tuple.hh:72
static auto get(const Tuple &t, Values &... values) -> typename tail_tuple< Tuple >::type
Definition: sub_tuple.hh:76
static auto get(const Tuple &t) -> type< Tuple >
Definition: sub_tuple.hh:132
typename tail_tuple< Tuple >::type type
Definition: sub_tuple.hh:128
Definition: sub_tuple.hh:111
typename std::cons_tuple< typename std::tuple_element< 0, Tuple >::type, typename rem_in_tuple< N-1 >::template type< typename tail_tuple< Tuple >::type > >::type type
Definition: sub_tuple.hh:115
static auto get(const Tuple &t) -> type< Tuple >
Definition: sub_tuple.hh:119
static auto get(const Tuple &t, const T &x) -> type< Tuple >
Definition: sub_tuple.hh:165
typename std::cons_tuple< T, typename tail_tuple< Tuple >::type >::type type
Definition: sub_tuple.hh:161
Definition: sub_tuple.hh:144
static auto get(const Tuple &t, const T &x) -> type< Tuple >
Definition: sub_tuple.hh:152
typename std::cons_tuple< typename std::tuple_element< 0, Tuple >::type, typename replace_in_tuple< N-1, T >::template type< typename tail_tuple< Tuple >::type > >::type type
Definition: sub_tuple.hh:148
static auto get(const Tuple &t) -> type< Tuple >
Definition: sub_tuple.hh:53
std::tuple< typename std::tuple_element< I, Tuple >::type > type
Definition: sub_tuple.hh:49
Definition: sub_tuple.hh:34
static auto get(const Tuple &t) -> type< Tuple >
Definition: sub_tuple.hh:40
typename std::cons_tuple< typename std::tuple_element< Head, Tuple >::type, typename sub_tuple< Tail... >::template type< Tuple > >::type type
Definition: sub_tuple.hh:37