¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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

Encabezado: <functional>

Espacio de nombres: std

Adiciones de comunidad

Mostrar:
© 2015 Microsoft