Compartilhar via


mem_fn Function

Gera um encapsulador simples de chamada.

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

Parâmetros

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

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

Comentários

A função do modelo retorna um encapsulador simples cwde chamada, com um tipo livre de resultado, de modo que a expressão cw(t, a2, ..., aN) é equivalente a INVOKE(pm, t, a2, ..., aN).Nenhuma não lança exceções.

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

O wrapper retornado de chamada é derivado de std::binary_function<cv Ty*, T2, Ret> (portanto definindo o tipo aninhado result_type como um sinónimo para Ret, o tipo aninhado first argument_type como um sinónimo para cv Ty*, e o tipo aninhado second argument_type como um sinónimo para T2) apenas se o tipo Ty é um ponteiro para a função de membro com CV- qualificador cv que recebe um argumento de 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: <functional>

namespace: STD

Consulte também

Referência

function Class