#include <array>
#include <utility>
#include <iostream>
template <std::size_t N, std::size_t ... Is>
constexpr std::array<char, N - 1>
to_array(const char (&a)[N], std::index_sequence<Is...>)
{
return {{a[Is]...}};
}
template <std::size_t N>
constexpr std::array<char, N - 1> to_array(const char (&a)[N])
{
return to_array(a, std::make_index_sequence<N - 1>());
}
int main() {
constexpr std::array<char, 5> a = to_array("hello");
for (auto c: a) {
std::cout << c;
}
}
I2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHN0ZDo6c2l6ZV90IE4sIHN0ZDo6c2l6ZV90IC4uLiBJcz4KY29uc3RleHByIHN0ZDo6YXJyYXk8Y2hhciwgTiAtIDE+CnRvX2FycmF5KGNvbnN0IGNoYXIgKCZhKVtOXSwgc3RkOjppbmRleF9zZXF1ZW5jZTxJcy4uLj4pCnsKICAgIHJldHVybiB7e2FbSXNdLi4ufX07Cn0KCnRlbXBsYXRlIDxzdGQ6OnNpemVfdCBOPgpjb25zdGV4cHIgc3RkOjphcnJheTxjaGFyLCBOIC0gMT4gdG9fYXJyYXkoY29uc3QgY2hhciAoJmEpW05dKQp7CiAgICByZXR1cm4gdG9fYXJyYXkoYSwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPE4gLSAxPigpKTsKfQoKaW50IG1haW4oKSB7Cgljb25zdGV4cHIgc3RkOjphcnJheTxjaGFyLCA1PiBhID0gdG9fYXJyYXkoImhlbGxvIik7CgkKCWZvciAoYXV0byBjOiBhKSB7CgkJc3RkOjpjb3V0IDw8IGM7Cgl9Cn0=