-
概念:
函数对象也叫函数符(functor),可以是以函数方式与()结合使用的任意对象。这包括函数名、指向函数的指针和重载了()操作符(包括这三种的模板实现)的类对象。
-
函数符类型
- 生成器(generator):不用参数就可以调用的函数符
- 一元函数(unaryfunction)是用一个参可以调用的函数符
- 二元函数(binary function)是用两个参数可以调用的函数符
- 改进版:
- 返回bool值得一元函数是断言
- 返回bool值得二元函数是二元断言
- 工具库:std::function
-
原型:
template< class R, class... Args > class function<R(Args...)>;
-
语法解释:
i. template<class R, class… Args>即声明一个模板以及模板参数;
ii. class function<R(Args…)>即class function,配合i表明这是一个类模板部分特例化,而T写成retType(args…)形式代表T是一个函数类型。 -
功能
i. 存储可调用对象
-
更多参考:
i. https://zh.cppreference.com/w/cpp/utility/functional/function
ii.cpp primer5 14.8.3