#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;
}