для устранения петли
Я хотел бы использоватьтрюк с индексами устранитьfor
циклы в моей программе C ++ 11 (похоже на принудительное-funroll-loops
).
Вот пример:
template<unsigned...> struct indices
{
};
template<unsigned M, unsigned... Is> struct indices_gen
: indices_gen<M - 1, M - 1, Is...>
{
};
template<unsigned... Is> struct indices_gen<0, Is...> : indices<Is...>
{
};
template <typename T>
struct example
{
example()
{
assign(indices_gen<3>(), 0);
}
template<unsigned... Is, typename U>
void assign(indices<Is...>, U value)
{
[](...){}((array[Is] = value)...);
}
T array[3];
};
int main()
{
example<int> ex;
return 0;
}
Можно ли создатьindices_gen<S,E>
от начального индексаS
до конца индексаE
? Можете ли вы показать, как?