mem_fn 函数

产生简单调用包装器。

template<class Ret, class Ty>
    unspecified mem_fn(Ret Ty::*pm);

参数

  • Ret
    包装函数的返回类型。

  • Ty
    成员函数指针的类型。

备注

模板函数返回具有弱的结果类型的简单包装调用 cw,因此,此类表达式 cw(t, a2, ..., aN) 与 INVOKE(pm, t, a2, ..., aN)等效。 不引发任何异常。

返回的调用将从 std::unary_function<cv Ty*, Ret> 派生 (因而定义嵌套类型 result_type 作为 Ret 的同义词和嵌套类型 argument_type 作为 cv Ty*的同义词),只有当 Ty 类型是指向使用不采用参数的 CV 限定符 cv 的成员函数。

返回的调用将从 std::binary_function<cv Ty*, T2, Ret> 派生 (因而定义嵌套类型 result_type 作为 Ret的同义词,嵌套类型 first argument_type 作为 cv Ty*的同义词和嵌套类型 second argument_type 作为 T2的同义词),只有当 Ty 类型是指向与带有参数的 CV 限定符 cv 的成员函数中,键入 T2。

示例

 

// std_tr1__functional__mem_fn.cpp 
// compile with: /EHsc 
#include <functional> 
#include <iostream> 
 
class Funs 
    { 
public: 
    void square(double x) 
        { 
        std::cout << x << "^2 == " << x * x << std::endl; 
        } 
 
    void product(double x, double y) 
        { 
        std::cout << x << "*" << y << " == " << x * y << std::endl; 
        } 
    }; 
 
int main() 
    { 
    Funs funs; 
 
    std::mem_fn(&Funs::square)(funs, 3.0); 
    std::mem_fn(&Funs::product)(funs, 3.0, 2.0); 
 
    return (0); 
    } 
 
  

要求

标头: <起作用的>

命名空间: std

请参见

参考

function 类