template <class Arg, class Result> class pointer_to_unary_function; |
C++98 |
template <class Arg, class Result> class pointer_to_unary_function : public unary_function <Arg,Result> { protected: Result(*pfunc)(Arg); public: explicit pointer_to_unary_function ( Result (*f)(Arg) ) : pfunc (f) {} Result operator() (Arg x) const { return pfunc(x); } }; |
// pointer_to_unary_function example #include <iostream> #include <functional> #include <algorithm> #include <cmath> using namespace std; int main () { pointer_to_unary_function <double,double> LogObject (log); double numbers[] = {10.0, 20.0, 40.0, 80.0, 160.0}; double logs[5]; transform (numbers, numbers+5, logs, LogObject); for (int i=0; i<5; i++) cout << logs[i] << " "; cout << endl; return 0; } |
ptr_fun | 将函数指针转换为函数对象(类模板) |
pointer_to_binary_function | 从指针生成二元函数对象类(类模板) |
unary_function | 一元函数对象基类 (类模板) |