Condividi tramite


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

Vedere anche

Riferimenti

function Class