Updated:

less than 1 minute read

개요

  • 다형성 함수 래퍼
  • Callable
    • 함수뿐만 아니라 호출 가능한 것 들
  • Callable 대상(일반 함수, 멤버 함수, 람다, …)을 저장, 복사, 호출 가능


예제

  • 코드
     #include <functional>
     #include <iostream>
     #include <string>
        
     using namespace std;
        
     int func(string s) { return s.size(); }
        
     int main() {
         function<int(string)> f1 = func;
         function<string(const string &)> f2 = [](const string &s) { return s; };
        
         cout << f1("aaa") << endl;
         cout << f2("aaaaa") << endl;
        
         return 0;
     }
    
  • 실행 결과
     3
     aaaaa