2#ifndef TTG_UTIL_INPUTTYPES_H
3#define TTG_UTIL_INPUTTYPES_H
24 template <
typename...
Ts>
27 constexpr auto size()
const {
return sizeof...(Ts); }
29 template <std::
size_t I>
30 constexpr auto get()
const {
38 template <
typename...
Ts>
47 template <
typename... T>
49 using type = std::tuple<T...>;
58 template <
typename...
Ts>
60 constexpr static std::size_t value =
sizeof...(Ts);
81 template <
typename... Ts>
88 template <
typename... Ts>
89 struct tuple_size<
ttg::meta::typelist<Ts...>> {
90 static constexpr auto value =
sizeof...(Ts);
93 template <std::size_t I,
typename... Ts>
94 struct tuple_element<I,
ttg::meta::typelist<Ts...>> {
101 template <std::size_t
I,
typename T,
typename...
RestOfTs>
103 if constexpr (
I == 0)
top-level TTG namespace contains runtime-neutral functionality