#include <array>
template <std::size_t, typename T>
using alwaysT = T;
template <typename T, typename Seq> struct TestHelper;
template <typename T, std::size_t ... Is>
struct TestHelper<T, std::index_sequence<Is...>>
{
TestHelper(alwaysT<Is, T>... arr) {}
};
template<std::size_t V>
class Test : TestHelper<const std::array<int, 3>&, std::make_index_sequence<V>>
{
public:
using TestHelper<const std::array<int, 3>&, std::make_index_sequence<V>>::TestHelper;
Test() = default;
};
int main()
{
auto t = Test<1>({ 1, 2, 3 });
auto t2 = Test<2>(
{ 1, 2, 3 },
{ 4, 5, 6 }
);
static_cast<void>(t); // Avoid warning for unused variable
static_cast<void>(t2); // Avoid warning for unused variable
}
I2luY2x1ZGUgPGFycmF5PgoKdGVtcGxhdGUgPHN0ZDo6c2l6ZV90LCB0eXBlbmFtZSBUPgp1c2luZyBhbHdheXNUID0gVDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBTZXE+IHN0cnVjdCBUZXN0SGVscGVyOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IC4uLiBJcz4Kc3RydWN0IFRlc3RIZWxwZXI8VCwgc3RkOjppbmRleF9zZXF1ZW5jZTxJcy4uLj4+CnsKICAgIFRlc3RIZWxwZXIoYWx3YXlzVDxJcywgVD4uLi4gYXJyKSB7fQp9OwoKdGVtcGxhdGU8c3RkOjpzaXplX3QgVj4KY2xhc3MgVGVzdCA6IFRlc3RIZWxwZXI8Y29uc3Qgc3RkOjphcnJheTxpbnQsIDM+Jiwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPFY+Pgp7CnB1YmxpYzoKICAgIHVzaW5nIFRlc3RIZWxwZXI8Y29uc3Qgc3RkOjphcnJheTxpbnQsIDM+Jiwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPFY+Pjo6VGVzdEhlbHBlcjsKCiAgICBUZXN0KCkgPSBkZWZhdWx0Owp9OwoKaW50IG1haW4oKQp7CiAgICBhdXRvIHQgPSBUZXN0PDE+KHsgMSwgMiwgMyB9KTsKICAgIGF1dG8gdDIgPSBUZXN0PDI+KAogICAgICAgIHsgMSwgMiwgMyB9LAogICAgICAgIHsgNCwgNSwgNiB9CiAgICApOwogICAgCiAgICBzdGF0aWNfY2FzdDx2b2lkPih0KTsgLy8gQXZvaWQgd2FybmluZyBmb3IgdW51c2VkIHZhcmlhYmxlCiAgICBzdGF0aWNfY2FzdDx2b2lkPih0Mik7IC8vIEF2b2lkIHdhcm5pbmcgZm9yIHVudXNlZCB2YXJpYWJsZQp9Cg==