#include <iostream>
#include <array>
#include <utility>
#include <initializer_list>
template <typename T>
class A
{
public:
A(std::initializer_list<std::array<T, 1>> i);
virtual ~A() = default;
};
template <typename T>
A<T>::A(std::initializer_list<std::array<T, 1>> i)
{
std::cout << i.size() << std::endl;
}
template <typename T>
class B : public A<T>
{
public:
template <typename... Args>
B(Args&&... args);
};
template <typename T>
template <typename... Args>
B<T>::B(Args&&... args) : A<T>{std::array<T, 1>{std::forward<Args>(args)}...}
{
}
int main()
{
B<int> b{ 1, 2, 3, 4, 5, 6, 7 };
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjbGFzcyBBCnsKcHVibGljOgogICAgQShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjphcnJheTxULCAxPj4gaSk7CgogICAgdmlydHVhbCB+QSgpID0gZGVmYXVsdDsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpBPFQ+OjpBKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OmFycmF5PFQsIDE+PiBpKQp7CglzdGQ6OmNvdXQgPDwgaS5zaXplKCkgPDwgc3RkOjplbmRsOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KY2xhc3MgQiA6IHB1YmxpYyBBPFQ+CnsKcHVibGljOgogICAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIEFyZ3M+CiAgICBCKEFyZ3MmJi4uLiBhcmdzKTsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJncz4KQjxUPjo6QihBcmdzJiYuLi4gYXJncykgOiBBPFQ+e3N0ZDo6YXJyYXk8VCwgMT57c3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpfS4uLn0KewoJCn0KCmludCBtYWluKCkKewoJQjxpbnQ+IGJ7IDEsIDIsIDMsIDQsIDUsIDYsIDcgfTsKCXJldHVybiAwOwp9