25template <
typename... types>
49template <
typename type0,
typename... types>
78template <
typename type0>
100template <
typename... types>
113 requires(i <
sizeof...(types))
115 if constexpr (i == 0)
118 return bio::meta::get<i - 1>(t._tail);
125 requires(i <
sizeof...(types))
127 if constexpr (i == 0)
130 return bio::meta::get<i - 1>(t._tail);
138 requires(i <
sizeof...(types))
140 if constexpr (i == 0)
141 return std::move(t._head);
143 return bio::meta::get<i - 1>(std::move(t._tail));
150 requires(i <
sizeof...(types))
152 if constexpr (i == 0)
153 return std::move(t._head);
155 return bio::meta::get<i - 1>(std::move(t._tail));
169template <
typename type,
typename... arg_types>
171 requires(meta::detail::pack_traits::count<type, arg_types...> == 1)
173 return bio::meta::get<meta::detail::pack_traits::find<type, arg_types...>>(t);
178template <
typename type,
typename... arg_types>
180 requires(meta::detail::pack_traits::count<type, arg_types...> == 1)
182 return bio::meta::get<meta::detail::pack_traits::find<type, arg_types...>>(t);
187template <
typename type,
typename... arg_types>
189 requires(meta::detail::pack_traits::count<type, arg_types...> == 1)
191 return bio::meta::get<meta::detail::pack_traits::find<type, arg_types...>>(std::move(t));
196template <
typename type,
typename... arg_types>
198 requires(meta::detail::pack_traits::count<type, arg_types...> == 1)
200 return bio::meta::get<meta::detail::pack_traits::find<type, arg_types...>>(std::move(t));
212 requires(i <
sizeof...(types))
214 return bio::meta::get<i>(t);
219 requires(i <
sizeof...(types))
221 return bio::meta::get<i>(t);
226 requires(i <
sizeof...(types))
228 return bio::meta::get<i>(std::move(t));
233 requires(i <
sizeof...(types))
235 return bio::meta::get<i>(std::move(t));
238template <
typename type,
typename... types>
240 requires(bio::meta::detail::pack_traits::count<type, types...> == 1)
242 return bio::meta::get<type>(t);
245template <
typename type,
typename... types>
247 requires(bio::meta::detail::pack_traits::count<type, types...> == 1)
249 return bio::meta::get<type>(t);
252template <
typename type,
typename... types>
254 requires(bio::meta::detail::pack_traits::count<type, types...> == 1)
256 return bio::meta::get<type>(std::move(t));
259template <
typename type,
typename... types>
261 requires(bio::meta::detail::pack_traits::count<type, types...> == 1)
263 return bio::meta::get<type>(std::move(t));
272template <
std::size_t i,
template <
typename...>
typename t,
typename... types>
274struct tuple_element<i, t<types...>>
277 using type = bio::meta::detail::pack_traits::at<i, types...>;
285template <
template <
typename...>
typename t,
typename... types>
bio::meta::detail::pack_traits::at< i, types... > type
Element type.
Definition: pod_tuple.hpp:277
Provides traits for meta::type_list.