函数符是通过重载小括号(),即operator()来实现的,声明和定义跟重载operator+等运算符类似。
函数符概念定义如下:
- 生成器(generator):不用参数就可以调用的函数符;
- 一元函数(unary function):用一个参数就可以调用的函数符(比如for_each(),每次用于一个容器元素);
- 二元函数(binary function):用两个参数就可以调用的函数符;
- 谓词(predicate):一元函数的返回值为bool;
- 二元谓词(binary predicate):二元函数的返回值为bool。
具体各个概念的原理讲解和用法可以参考《C++ Primer Plus》(第6版)中文版第707——713页。
参考内容:
《C++ Primer Plus》(第6版)中文版 707-713页(参考:STL函数对象)