- 定义
模板function是在头文件functional中声明的,它从调用特征标1的角度定义了一个对象,可用于包装调用特征标相同的函数指针、函数对象或lambda表达式。
- 用法
std::function<double(char,int)> fdci;
表示可以将接受一个char参数和一个int参数,并返回一个double值的任何函数指针、函数对象或lambda表达式赋给它。
赋值格式:
function<double(double)> ef1=dub; //dub是函数指针
function<double(double)> ef2=Fq(10.0); //Fq是函数对象
function<double(double)> ef3=[](double u) {return u*u;}; //lambda表达式
- 作用:
使得只生成调用特征标相同的实例一次,而调用多次的方式,缩小可执行代码的规模。
调用特征标是由返回类型以及用括号括起来并用逗号分隔的参数列表定义的。如:
double(char,int)
,相同指函数的返回类型和参数类型完全相同。 ↩︎