mem_fn Function
Generuje wrapper jednoduché volání.
template<class Ret, class Ty>
unspecified mem_fn(Ret Ty::*pm);
Parametry
Ret
Návratový typ zalomený funkce.Ty
Typ ukazatel členské funkce.
Poznámky
Vrátí funkce šablony wrapper jednoduché volání cw, slabý výsledek typu, tak, že výraz cw(t, a2, ..., aN) je ekvivalentní INVOKE(pm, t, a2, ..., aN).Není to vyvoláním výjimky.
Wrapper vrácené volání je odvozen od std::unary_function<cv Ty*, Ret> (tedy definování vnořeného typu result_type jako synonymum pro Ret a vnořeného typu argument_type jako synonymum pro cv Ty*) pouze tehdy, jestliže typ Ty je ukazatel na funkci člena s kvalifikátor cv cv , nevyžaduje žádné argumenty.
Souhrnný vrácené volání je odvozen z std::binary_function<cv Ty*, T2, Ret> (tedy definování vnořeného typu result_type jako synonymum pro Ret, vnořený typ first argument_type jako synonymum pro cv Ty*a vnořený typ second argument_type jako synonymum pro T2) pouze tehdy, jestliže typ Ty je ukazatel na funkci člena s kvalifikátor cv cv , která má jeden argument typu T2.
Příklad
// 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);
}
Požadavky
Záhlaví: <functional>
Obor názvů: std