최대 1 분 소요

개요

  • 다형성 함수 래퍼
  • 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