signature
template <int ... Ns> struct seq_gen;
// Recursion case
template <int I, int ... Ns>
struct seq_gen<I, Ns...>
{
// Take front most number of sequence,
// decrement it, and prepend it twice.
// First I - 1 goes into the counter,
// Second I - 1 goes into the sequence.
using type = typename seq_gen<
I - 1, I - 1, Ns...>::type;
};
// Recursion abort
template <int ... Ns>
struct seq_gen<0, Ns...>
{
using type = sequence<Ns...>;
};
template <int N>
using sequence_t = typename seq_gen<N>::type;
и вопрос в следующем как мы из seq_gen<N>::type начинаем рекурсию и как понять первое I на счетчик, второе на последовательность?
это выглядит не как вопрос этой конфы)
Обсуждают сегодня