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

AGREGAR
Mostrar:
© 2015 Microsoft