Compartilhar via


Função mem_fn

Gerencie um wrapper simples de chamada.

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

Parâmetros

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

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

Comentários

A função do modelo retorna um wrapper simples cwde chamada, com um tipo fraco do resultado, de modo que a expressão cw(t, a2, ..., aN) é equivalente a INVOKE(pm, t, a2, ..., aN). Não gerencie nenhuma exceções.

O wrapper retornado de chamada é derivado de std::unary_function<cv Ty*, Ret> (como a definição do tipo aninhado result_type como um sinônimo para Ret e o tipo argument_type aninhado como um sinônimo para cv Ty*) somente se o tipo Ty é um ponteiro para a função de membro com CV- qualificador cv que não usa nenhum argumento.

O wrapper retornado de chamada é derivado de std::binary_function<cv Ty*, T2, Ret> (como a definição do tipo aninhado result_type como um sinônimo para Ret, o tipo first argument_type aninhado como um sinônimo para cv Ty*, e o tipo second argument_type aninhado como um sinônimo para T2) somente se o tipo Ty é um ponteiro para a função de membro com CV- qualificador cv que usa um argumento, o 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::mem_fn(&Funs::square)(funs, 3.0); 
    std::mem_fn(&Funs::product)(funs, 3.0, 2.0); 
 
    return (0); 
    } 
 
  

Requisitos

Cabeçalho: <funcional>

Namespace: std

Consulte também

Referência

Classe function