Partilhar via


Função mem_fn

Gera um wrapper simples telefonar.

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

Parâmetros

  • Ret
    O tipo de retorno da função empacotado.

  • Ty
    O tipo de ponteiro de função de membro.

Comentários

A função do modelo retorna uma telefonar simples invólucro cw, com um tipo de resultado fraco, de modo que a expressão cw(t, a2, ..., aN) é equivalente a INVOKE(pm, t, a2, ..., aN). Ele não lança exceções.

O wrapper telefonar retornada é derivado de std::unary_function<cv Ty*, Ret> (portanto define o tipo aninhado result_type sistema autônomo um sinônimo para Ret e o tipo aninhado argument_type sistema autônomo um sinônimo para cv Ty*) somente se o tipo Ty é um ponteiro para função de membro com o qualificador de VC cv que não requer argumentos.

O wrapper telefonar retornada é derivado de std::binary_function<cv Ty*, T2, Ret> (portanto define o tipo aninhado result_type sistema autônomo um sinônimo para Ret, o tipo aninhado first argument_type sistema autônomo um sinônimo para cv Ty*e o tipo aninhado second argument_type sistema autônomo um sinônimo para T2) somente se o tipo Ty é um ponteiro para função de membro com o qualificador de VC cv que tem um argumento, do tipo T2.

Exemplo

 

// 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::tr1::mem_fn(&Funs::square)(funs, 3.0); 
    std::tr1::mem_fn(&Funs::product)(funs, 3.0, 2.0); 
 
    return (0); 
    } 
 
3^2 == 9 3*2 == 6

Requisitos

Cabeçalho:<functional>

Namespace: std::tr1

Consulte também

Referência

<functional>TR1)

função de classe