#include <iostream>
using namespace std;
template<class STR, class ... ARGS>
void event(ARGS ... args)
{
STR str = {args ...};
}
struct A
{
int a, b, c;
};
class B
{
public:
B(int, char const *) {}
};
class C
{
public:
C(std::initializer_list<char const *>) {}
};
int main()
{
event<A>(1, 2, 3);
event<B>(100, "a");
event<C>("x", "y", "z");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8Y2xhc3MgU1RSLCBjbGFzcyAuLi4gQVJHUz4Kdm9pZCBldmVudChBUkdTIC4uLiBhcmdzKQp7CglTVFIgc3RyID0ge2FyZ3MgLi4ufTsKfQoKc3RydWN0IEEKewoJaW50IGEsIGIsIGM7Cn07CgpjbGFzcyBCCnsKcHVibGljOgoJQihpbnQsIGNoYXIgY29uc3QgKikge30KfTsKCmNsYXNzIEMKewpwdWJsaWM6CglDKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjaGFyIGNvbnN0ICo+KSB7fQp9OwoKaW50IG1haW4oKQp7CglldmVudDxBPigxLCAyLCAzKTsKCWV2ZW50PEI+KDEwMCwgImEiKTsKCWV2ZW50PEM+KCJ4IiwgInkiLCAieiIpOwp9Cg==