본문 바로가기
Programming/C++ & STL

바인더(binder)

by 한 땀; 한 땀; 2021. 1. 16.
#include <iostream>
#include <functional>
using namespace std;

int main()
{
	cout << less<int>()(10, 20) << endl; 

	binder1st<less<int>> binder1 = bind1st(less<int>(), 10); // less<int>()(10,int param) 와 동일

	cout << binder1(20) << endl; // less<int>()(10,20) 와 동일

	binder2nd<less<int>> binder2 = bind2nd(less<int>(), 10);

	cout << binder2(20) << endl; // less<int>()(20,10) 와 동일

	return 0;
}

 

binder1st 클래스는 첫 번째 인자를 10으로 고정시켜 두 번째 인자만 전달하여 비교하게 된다.

즉, binder1(20)은 less 객체의 두번째 인자로 20이 전달되어 less<int>()(10, 20)이 되는 것이다.

 

binder2nd 클래스는 두 번째 인자를 10으로 고정시켜 첫 번째 인자를 전달하여 비교한다.

마찬가지로 첫 번째 인자로 20을 전달하여 less<int>(20, 10)이 된다.

 

'Programming > C++ & STL' 카테고리의 다른 글

함수 어댑터(function adaptor)  (0) 2021.01.16
객체 포인터의 참조 관계  (0) 2021.01.15
C++ 로 만든 카드 짝 맞추기  (0) 2021.01.07

댓글