Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

mem_fn (Función)

 

Genera un contenedor de llamadas simple.

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

Ret

El tipo de valor devuelto de la función ajustada.

Ty

El tipo de puntero a función miembro.

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 se deriva 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 se deriva 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.

 

// 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); 
    } 

3^2 == 9
3*2 == 6

Requisitos

Encabezado: <functional>

Espacio de nombres: std

Mostrar: