template <class Arg1, class Arg2, class Result> class pointer_to_binary_function; |
C++98 |
template <class Arg1, class Arg2, class Result> class pointer_to_binary_function : public binary_function <Arg1,Arg2,Result> { protected: Result(*pfunc)(Arg1,Arg2); public: explicit pointer_to_binary_function ( Result (*f)(Arg1,Arg2) ) : pfunc (f) {} Result operator() (Arg1 x, Arg2 y) const { return pfunc(x,y); } }; |
// pointer_to_binary_function example #include <iostream> #include <functional> #include <algorithm> #include <cmath> using namespace std; int main () { pointer_to_binary_function <double,double,double> PowObject (pow); double numbers[] = {1.0, 2.0, 3.0, 4.0, 5.0}; double squares[5]; transform (numbers, numbers+5, squares, bind2nd(PowObject,2) ); for (int i=0; i<5; i++) cout << squares[i] << " "; cout << endl; return 0; } |
ptr_fun | 将函数指针转换为函数对象(类模板) |
pointer_to_unary_function | 从指针生成一元函数对象类(类模板) |
unary_function | 一元函数对象基类 (类模板) |