11 #include <type_traits>
32 template <ParID_t v,
typename C>
33 struct add_to_value_container;
36 struct add_to_value_container<
v, std::integer_sequence<ParID_t, others...>> {
37 using type = std::integer_sequence<
ParID_t, others...,
v>;
40 template <
typename T,
unsigned int N>
41 struct tparam_generator {
42 using type =
typename add_to_value_container<
43 static_cast<T>(
N),
typename tparam_generator<T, N - 1>::type>::type;
47 struct tparam_generator<
T, 0> {
48 using type = std::integer_sequence<T, static_cast<T>(0)>;
55 struct converter<std::integer_sequence<ParID_t, values...>> {
56 using type = ParameterSet<
values...>;
59 using type =
typename converter<