1#ifndef TTG_UTIL_INPUTTYPES_H
2#define TTG_UTIL_INPUTTYPES_H
23 template <
typename...
Ts>
26 constexpr auto size()
const {
return sizeof...(Ts); }
28 template <std::
size_t I>
29 constexpr auto get()
const {
37 template <
typename...
Ts>
46 template <
typename... T>
48 using type = std::tuple<T...>;
57 template <
typename...
Ts>
59 constexpr static std::size_t value =
sizeof...(Ts);
80 template <
typename... Ts>
87 template <
typename... Ts>
88 struct tuple_size<
ttg::meta::typelist<Ts...>> {
89 static constexpr auto value =
sizeof...(Ts);
92 template <std::size_t I,
typename... Ts>
93 struct tuple_element<I,
ttg::meta::typelist<Ts...>> {
100 template <std::size_t
I,
typename T,
typename...
RestOfTs>
102 if constexpr (
I == 0)
top-level TTG namespace contains runtime-neutral functionality