在stl中,下面的函数适配器能够使函数指针转换为特定的类型,供下面的使用。函数
4个标准的函数配接器(not一、not二、bind1st和bind2nd)都要求一些特殊的类型定义,那些非标准的、与STL兼容的配接器一般也是如此。指针
可是若是是函数对象,那么须要继承基类函数适配器,实现特定的接口,使函数子拥有可适配的特性,这样才能更加健壮,适用范围更广。对象
若是函数子类的operator()只有一个实参,那么它应该从std::unary_function继承;若是函数子类的operator()有两个实参,那么它应该从std::binary_function继承。继承
对于unary_function,你必须指定函数子类operator()所带的参数的类型,以及返回类型;而对于binary_function,你必须指定三个类型:operator()的第一个和第二个参数的类型,以及operator()的返回类型。接口
传递给unary_function或binary_function的非指针类型须要去掉const和引用(&)部分。io
这样作以后,就能够实现提供函数对象配接器所须要的类型定义,这样经过简单的继承,咱们就产生了可配接的函数对象。function