Updated:

less than 1 minute read

개요

  • 함수 객체 생성 시 인자를 지정
  • placeholders::_x를 이용해 전달된 인자 중 x번째에 있는 값을 bind
  • 인자를 여러개 전달해도 bind된 인자 외에는 무시


코드

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


실행 결과

1, 2
2, 3
3, 4
------
1, 10
2, 10
------
2, 10
3, 10
------
1, 7
1, 4
------
1, 5
1, 3