#include <iostream>
template<typename F, typename... Args>
auto foo( F && f, Args && ... args)
{
return std::forward<F>(f)(std::forward<Args>(args)...);
}
int main()
{
foo([](int x, float y)
{
std::cout << x << " " << y << std::endl;
},
5, 42.42f
);
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICAKICAgIHRlbXBsYXRlPHR5cGVuYW1lIEYsIHR5cGVuYW1lLi4uIEFyZ3M+CiAgICBhdXRvIGZvbyggRiAmJiBmLCBBcmdzICYmIC4uLiBhcmdzKQogICAgewogICAgCXJldHVybiBzdGQ6OmZvcndhcmQ8Rj4oZikoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgIH0KICAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgIAlmb28oW10oaW50IHgsIGZsb2F0IHkpCiAgICAJICAgICB7CiAgICAJCSAgIHN0ZDo6Y291dCA8PCB4IDw8ICIgIiA8PCB5IDw8IHN0ZDo6ZW5kbDsKICAgIAkJIH0sCiAgICAJCTUsIDQyLjQyZgogICAgCSAgICk7CiAgICAJcmV0dXJuIDA7CiAgICB9