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; };