#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 |
댓글