Ответы here и here - это в значительной степени то, что мне нужно. Тем не менее, я хотел бы иметь возможность генерировать последовательности, такие как:Компиляция - генерация целочисленной последовательности с одним оставленным
gen_seq<5, 2> // {0, 1, 3, 4}
gen_seq<3, 0> // {1, 2}
// optional behavior that would be useful for me:
gen_seq<4, 4> // {0, 1, 2, 3}
В примерах я использовал gen_seq, чтобы сформировать последовательность от 0 до N-1 без I. Это не является обязательным, я бы также хорошо с gen_seq, где N - длина последовательности, а I - отсутствующий индекс или другие варианты.
Я думаю, что большая часть проблемы уже ответила на связанные вопросы. Однако я не могу обернуть голову тем, как включить условие «оставьте это» для второго параметра.
В идеале я хотел бы придерживаться особенностей C++ 11 и избегать C++ 14. Однако элегантные и особенно читаемые души, использующие C++ 14, также могут быть очень интересными.