mem_fn Function
Genera un wrapper semplice di chiamata.
template<class Ret, class Ty>
unspecified mem_fn(Ret Ty::*pm);
Parametri
Ret
Il tipo restituito della funzione di cui è stato eseguito il wrapping.Ty
Il tipo di puntatore a funzione membro.
Note
La funzione di modello restituisce un wrapper semplice cwdi chiamata, con un tipo di risultato debole, in modo che l'espressione cw(t, a2, ..., aN) equivale a INVOKE(pm, t, a2, ..., aN).Non viene generata alcuna eccezione.
Il wrapper restituito di chiamata è derivato da std::unary_function<cv Ty*, Ret> (quindi definire il tipo annidato result_type come un sinonimo Ret e il tipo annidato argument_type come un sinonimo cv Ty*) solo se il tipo Ty è un puntatore alla funzione membro con il cv- qualificatore cv che non accetta argomenti.
Il wrapper restituito di chiamata è derivato da std::binary_function<cv Ty*, T2, Ret> (quindi definire il tipo annidato result_type come un sinonimo Ret, il tipo annidato first argument_type come un sinonimo cv Ty*e il tipo annidato second argument_type come un sinonimo T2) solo se il tipo Ty è un puntatore alla funzione membro con il cv- qualificatore cv che accetta un argomento di tipo, T2.
Esempio
// 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);
}
Requisiti
intestazione: <functional>
Spazio dei nomi: deviazione standard