Partager via


mem_fn Function

Génère un wrapper simple d'appel.

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

Paramètres

  • Ret
    Le type de retour de la fonction encapsulée.

  • Ty
    Le type du pointeur de fonction membre.

Notes

La fonction de modèle retourne un wrapper simple cwd'appel, avec un type de résultat faible, tels que l'expression cw(t, a2, ..., aN) est équivalente à INVOKE(pm, t, a2, ..., aN).Elle ne lève pas d'exception.

Le wrapper retourné d'appel est dérivé d' std::unary_function<cv Ty*, Ret> (par conséquent définissant le type imbriqué result_type comme un synonyme pour Ret et le type imbriqué argument_type comme un synonyme pour cv Ty*) uniquement si le type Ty est un pointeur vers une fonction membre avec le cv- qualificateur cv qui ne prend pas d'arguments.

Le wrapper retourné d'appel est dérivé d' std::binary_function<cv Ty*, T2, Ret> (par conséquent définissant le type imbriqué result_type comme un synonyme pour Ret, le type imbriqué first argument_type comme un synonyme pour cv Ty*, et le type imbriqué second argument_type comme un synonyme pour T2) uniquement si le type Ty est un pointeur vers une fonction membre avec le cv- qualificateur cv qui prend un argument, du type T2.

Exemple

 

// 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); 
    } 
 
  

Configuration requise

en-tête : <functional>

l'espace de noms : DST

Voir aussi

Référence

function Class