vector와 마찬가지로 Standard Template Library 사용되는 탬플릿입니다.

#include<functional>

예를들어 함수 print를 선언을 합니다.

void Print() { cout << "전역 print 함수" << endl; }

STL functional을 이용합니다. print 함수의 주소를 bind로 묶어서 func 변수에 넣어줍니다.

function<void()> func = bind(Print);

 

그렇다면 파라미터가 존재하고 리턴이 void가 아닌 다른 데이터 타입을 사용하는 방법으로 해보겠습니다.

Add 함수가 있다고  가정하겠습니다 파라미터는 int a, b 이며 리턴은 string 데이터 타입을 가집니다.

string Add(int a, int b) {
	string temp = to_string(a);
	
	return temp;
}

func2를 선언해줍니다 이번엔 파리미터 int 와 리턴은 string 데이터 타입으로 해줍니다.

function<string(int, int)> func2

func2변수를 bind 해서 add 함수를 넣어주는데 여기서 파라미터를 

placeholders로 표시해줍니다 계속 숫자가 늘어나면 그 숫자만큰[placeholders::_ 숫자]를 입력해주면됩니다.

func2 = bind(Add, placeholders::_1, placeholders::_2);

 

'프로그래밍언어 > C++' 카테고리의 다른 글

<c++>Char to String  (0) 2019.10.11
<c++> string to char  (0) 2019.10.11
마우스 클릭  (0) 2019.09.27
마우스 좌표값 얻어오기  (0) 2019.09.27
Save data Text file  (0) 2019.09.20

+ Recent posts