std::function 정리

Program Lang./C++ 2017. 1. 2. 11:15

1. 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
: