C++程序设计之可调用对象与标准库function,来源于C++ Primer(第五版)—— 14.8.3。。在头文件<functional>中定义。
源代码如下:
#include <iostream>
#include <functional>
using namespace std;
int add(int a, int b)
{
return a+b;
}
struct divide
{
int operator()(int a, int b)
{
return a/b;
}
};
int main()
{
function<int(int, int)> f1 = add;
function<int(int, int)> f2 = std::minus<int>();
function<int(int, int)> f3 = [](int a, int b){return a*b;};
function<int(int, int)> f4 = divide();
cout << "f1(100, 10):\t" << f1(100, 10) << endl;
cout << "f2(100, 10):\t" << f2(100, 10) << endl;
cout << "f3(100, 10):\t" << f3(100, 10) << endl;
cout << "f4(100, 10):\t" << f4(100, 10) << endl;
return 0;
}
运行结果如下:
f1(100, 10): 110
f2(100, 10): 90
f3(100, 10): 1000
f4(100, 10): 10