std::function 정리
Program Lang./C++ 2017. 1. 2. 11:151. std::function 개요
기존 함수포인터의 개념을 확장한 것이다. c++11이후부터는 callable target이 아래와 같이 다양해졌다.
따라서 기존 함수포인터만으로는 이를 cover할 수 없고, 보다 일반화된 개념이 필요해지면서
std::function이 새롭게 나온 것이다.
std::function이 처리할 수 있는 callable target은 아래와 같다.
- function (일반함수)
- lambda expression
- bind expression
- function object (함수 객체)
- class 내의 맴버함수 및 맴버 변수
2. usage
선언하고 사용하는 방법에 대해서 아래와 같이 정리한다.
#include <functional>
std::function<리턴타입(입력 파라미터들)> 변수
void print(int a, int b);
ex) std::function<void(int, int)> fp = print;
3. 테스트 코드
각 callable target에 대한 사용법을 예제를 통해서 알아본다.
4. 결론
c++11 이후에서 class를 설계할 때, 기존에 함수포인터를 이용했다면 이제 std::function으로 모두
통일하는 것이 c++ 철학에 맞는 구현 방식이다.
'Program Lang. > C++' 카테고리의 다른 글
[json-c] simple generator json ojbect (0) | 2017.01.09 |
---|---|
[json-c] simple parsing example (0) | 2017.01.09 |
unique_ptr, shared_ptr 읽히기 (0) | 2016.12.30 |
c++ pair 읽히기 (0) | 2016.12.30 |
full version (pat, pmt, sdt) (2) | 2016.07.22 |