function object就是将function call操作符重载的一种class,而任何算法接受一个仿函数时,总是在其演算过程中调用该仿函数的operator(),这使得不具备仿函数之形却有真函数之实的一般函数和成员函数感到为难.为此,STL又提供了为数众多的配接器,使一般函数和成员函数得以无缝隙的与其它配接器或算法结合起来.
function object(又叫做functor)是一种重载了()运算符的类,它在STL中被用来代替以前的函数指针。它的类型安全、可支持参数化类型、而且可以使用Adapter来进行配接。
function object adapter将functor的功能进行相互的配接来时向某些复杂的函数功能,比如:
less是实现比较的functor比如你需要比较一个属是否小于5,则可以这样使用:
bind2nd(less<int>(), 5)