mem_fn Function
启动简单调用包装。
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;AMP_gt; 从派生(因而定义嵌套类型 result_type,Ret 的同义词和嵌套类型 argument_type 作为 cv Ty*的同义词),仅当类型 Ty 是指向与不接受参数的cv限定符 cv 的成员函数。
调用返回的包装 std::binary_function<cv Ty*, T2, Ret;AMP_gt; 从派生(因而定义嵌套类型 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);
}
要求
标头: <functional>
命名空间: std