placeholder 예제 츨처 다른 좋은 예제도 많다..!: https://narss.tistory.com/entry/%EB%B2%94%EC%9A%A9%EC%A0%81-%ED%95%A8%EC%88%98-%ED%8F%AC%EC%9D%B8%ED%84%B0Generalpurpose-function-pointer


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <functional>
 
using namespace std;
using namespace std::placeholders; //< //_1, _2, ..를 사용하기 위해
 
void hoo (int a, int b) { cout << "hoo" << a << b << endl; }
 
int main(int argc, char* argv[])
{
  function<void(int)> f = bind(&hoo, 3, _1);
  f(5);  //< hoo(3, 5);
 
  return 0;
}
 
 





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <functional>
 
using namespace std;
using namespace std::placeholders; //< //_1, _2, ..를 사용하기 위해
 
void hoo (int a, int b) { cout << "hoo" << a << b << endl; }
 
int main(int argc, char* argv[])
{
  function<void(int)> f = bind(&hoo, 3, _1);
  f(5);  //< hoo(3, 5);
 
  return 0;
}
 
cs



bind 템플릿 함수에서의 값 레퍼런스로 넣는 방법


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <functional>
using namespace std;
 
void foo(int a, int& b) { a = 0; b = 0; }
 
int main(int argc, char* argv[])
{
  int x = 10, y = 10;
  function<void()> f;
 
  f = bind(&foo, x, ref(y));
 
  // 위의 한 줄은 아래의 두 줄과 동일
  // reference_wrapper<int> r1(y);
  // f = bind(&foo, x, r1);
     
  f();  //< foo(x, y)
 
  cout << x << endl;  //< 10
  cout << y << endl;  //< 0
}
 
cs


'Functional Programming' 카테고리의 다른 글

순수 C++ 고계함수  (0) 2019.03.23
T아카데미 함수형 프로그래밍 설명 유튜브  (0) 2019.03.23
std Function 사용법 예제  (0) 2019.03.23
bind 사용법 예제  (0) 2019.03.23
튜플 사용방법  (0) 2019.03.23

+ Recent posts