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