#include <functional>
#include <iostream>
std::function<int (int)> add(int a)
{
return [a](int b) { return a + b; };
}
int main()
{
std::cout << add(3)(4) << "\n";
auto add3 = add(3);
std::cout << add3(2) << "\n";
return 0;
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnN0ZDo6ZnVuY3Rpb248aW50IChpbnQpPiBhZGQoaW50IGEpCnsKCXJldHVybiBbYV0oaW50IGIpIHsgcmV0dXJuIGEgKyBiOyB9Owp9CgppbnQgbWFpbigpCnsKCXN0ZDo6Y291dCA8PCBhZGQoMykoNCkgPDwgIlxuIjsKCQoJYXV0byBhZGQzID0gYWRkKDMpOwoJCglzdGQ6OmNvdXQgPDwgYWRkMygyKSA8PCAiXG4iOwoJCglyZXR1cm4gMDsKfQ==