类模版std::function是一种通用、多态的函数封装。

std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。

 

如下中的

typedef std::function<int(int)> Functional;

 

最外层的int为返回值类型,里层int为参数类型

 

 

#include <iostream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <string>
#include <algorithm>
#include <functional>
#include <memory>

using namespace std;

typedef std::function<int(int)> Functional;

int TestFunc(int a)  
{  
    return a;  
}

int main()
{
    Functional obj = TestFunc;    
    int res = obj(1);
    std::cout << res << std::endl;

    while(1);
    return 0;
}