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 |