1 #include <iostream>
2 #include <functional>
3 using namespace std;
4 using std::function;
5
6 int add(int a, int b)
7 {
8 return a + b;
9 }
10
11 template<class T,class F>
12 T run(T t1, T t2, F f)
13 {
14 return f(t1, t2);
15 }
16
17 void main()
18 {
19 function<int(int, int)> fun1 = add;
20 function<int(int, int)> fun2 = [](int a,int b)->int {return a - b; };
21
22 cout << fun1(10, 12) << endl;
23
24 cout << run(10, 12, fun1) << endl;//默认推导
25 //精确赋予类型
26 cout << run<int, function<int(int, int)>>(10, 20, fun1) << endl;
27 cin.get();
28 }