1 2 3 4 5 6 7 8 9 10
template<int __i, int... _Indexes, typename _IdxHolder, typename ... _Elements> struct __index_holder_impl<__i, __index_holder<_Indexes...>, _IdxHolder, _Elements ...> { typedef typename __index_holder_impl<__i + 1, __index_holder<_Indexes..., __i>, _Elements ...>::type type; };