mem_fn Function
Genera un contenedor simple de llamada.
template<class Ret, class Ty>
unspecified mem_fn(Ret Ty::*pm);
Parámetros
Ret
El tipo de valor devuelto de la función ajustada.Ty
El tipo de puntero a función miembro.
Comentarios
La función de la plantilla devuelve un contenedor simple cwde llamada, con un tipo de resultado parcial, de forma que la expresión cw(t, a2, ..., aN) es equivalente a INVOKE(pm, t, a2, ..., aN).No produce ninguna excepción.
El contenedor que devuelve la llamada es derivado de std::unary_function<cv Ty*, Ret> (por consiguiente definiendo el tipo anidado result_type como sinónimo de Ret y el tipo anidado argument_type como sinónimo de cv Ty*) sólo si el tipo que Ty es un puntero a la función miembro con el cv-calificador cv que no toma ningún argumento.
El contenedor que devuelve la llamada es derivado de std::binary_function<cv Ty*, T2, Ret> (por consiguiente definiendo el tipo anidado result_type como sinónimo de Ret, el tipo anidado first argument_type como sinónimo de cv Ty*, y el tipo anidado second argument_type como sinónimo de T2) sólo si el tipo que Ty es un puntero a la función miembro con el cv-calificador cv que toma un argumento, de T2escrito.
Ejemplo
// 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);
}
Requisitos
encabezado: <funcional>
espacio de nombres: std