#include <iostream>
#include <array>
using uu = std::size_t;
template< uu... ns > struct seq{};
template< uu from = 0 >
struct index_from
{
template< uu n, uu... ns > struct end : end< n - 1, n - 1, ns... > {};
template< uu... ns > struct end< from, ns... > : seq< ns... > {};
template< uu last > struct to : end< last + 1 > {};
};
template< uu... ns >
constexpr auto make_index_array( seq< ns... > )
{
return std::array< uu, sizeof...( ns ) > { { ns... } };
}
using namespace std;
int main()
{
auto arr = make_index_array( index_from< 10 >::to< 15 >{} );
for( const auto v : arr )
cout << v << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+Cgp1c2luZwl1dSA9CQkJCQlzdGQ6OnNpemVfdDsKCnRlbXBsYXRlPCB1dS4uLiBucyA+ICAgICAgICAgICAgc3RydWN0ICBzZXF7fTsKCnRlbXBsYXRlPCB1dSBmcm9tID0gMCA+CnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfZnJvbQp7CiAgICB0ZW1wbGF0ZTwgdXUgbiwgdXUuLi4gbnMgPiAgc3RydWN0ICBlbmQgOiBlbmQ8IG4gLSAxLCBuIC0gMSwgbnMuLi4gPiB7fTsKICAgIHRlbXBsYXRlPCB1dS4uLiBucyA+ICAgICAgICBzdHJ1Y3QgIGVuZDwgZnJvbSwgbnMuLi4gPiA6IHNlcTwgbnMuLi4gPiB7fTsKICAgIHRlbXBsYXRlPCB1dSBsYXN0ID4gICAgICAgICBzdHJ1Y3QgIHRvIDogZW5kPCBsYXN0ICsgMSA+IHt9Owp9OwoKdGVtcGxhdGU8IHV1Li4uIG5zID4KY29uc3RleHByCWF1dG8gICAgICAgICAgICAgICAgbWFrZV9pbmRleF9hcnJheSggc2VxPCBucy4uLiA+ICkKewogICAgcmV0dXJuICBzdGQ6OmFycmF5PCB1dSwgc2l6ZW9mLi4uKCBucyApID4geyB7IG5zLi4uIH0gfTsKfQoKdXNpbmcgICBuYW1lc3BhY2UgICBzdGQ7CgppbnQgbWFpbigpCnsKCWF1dG8JYXJyID0gbWFrZV9pbmRleF9hcnJheSggaW5kZXhfZnJvbTwgMTAgPjo6dG88IDE1ID57fSApOwoJZm9yKCBjb25zdCBhdXRvIHYgOiBhcnIgKQoJCWNvdXQgPDwgdiA8PCBlbmRsOwoJCQoJcmV0dXJuIDA7Cn0=