我想创建一个
std::index_sequence
来保存给定数字的倍数。
假设我想保存像
0, 3, 6, 9, ...
或 0, 2, 4, 6, 8, 10, ...
这样的值。
如何创建这样的自定义序列?
我想通过给出要生成的值的数量并在连续值之间步进来使用它。
我会使用“正常”索引序列并将其乘以
M
,如下所示:
template <std::size_t M, std::size_t N>
auto make_index_sequence_as_multiple_of() {
return []<std::size_t... I>(std::index_sequence<I...>) {
return std::index_sequence<(I * M)...>{};
}(std::make_index_sequence<N>{});
}