#include <functional>
#include <iostream>
using namespace std;
void func(int x, int y) { cout << x << ", " << y << endl; }
int main() {
auto f1 = bind(func, placeholders::_1, placeholders::_2);
f1(1, 2);
f1(2, 3);
f1(3, 4, 5, 6, 7);
cout << "------" << endl;
auto f2 = bind(func, placeholders::_1, 10);
f2(1);
f2(2, 3, 4);
cout << "------" << endl;
auto f3 = bind(func, placeholders::_2, 10);
f3(1, 2);
f3("a", 3, 4, "b");
cout << "------" << endl;
auto f4 = bind(func, 1, placeholders::_3);
f4(5, 6, 7);
f4("a", 3, 4, "b");
cout << "------" << endl;
auto f5 = bind(func, 1, placeholders::_1);
f5(5);
f5(3, 4, "b");
return 0;
}