#include <iostream>
#include <functional>
using namespace std;
int foo(int x, int y){
return x+y ;
}
int main() {
auto foo2 = std::bind(foo, std::placeholders::_1, 2);
cout << foo2(40) << endl;
auto foo3 = [] (int x) { return foo(x, 2); };
cout << foo3(40) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZm9vKGludCB4LCBpbnQgeSl7CiAgIHJldHVybiB4K3kgOwp9CgoKaW50IG1haW4oKSB7CiAgICBhdXRvIGZvbzIgPSBzdGQ6OmJpbmQoZm9vLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIDIpOwogICAgY291dCA8PCBmb28yKDQwKSA8PCBlbmRsOwoKICAgIGF1dG8gZm9vMyA9IFtdIChpbnQgeCkgeyByZXR1cm4gZm9vKHgsIDIpOyB9OwogICAgY291dCA8PCBmb28zKDQwKSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=