Compartir a través de


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

Vea también

Referencia

function Class