binder1st (STL/CLR)

La classe de modèle décrit un functor d'un argument qui, lorsqu'elle est appelée, retourne son functor stocké à deux arguments appelé avec son premier argument stocké et le deuxième argument fourni.Vous utilisez spécifiez un objet de fonction en termes de son functor stocké.

template<typename Fun>
    ref class binder1st
    { // wrap operator()
public:
    typedef Fun stored_function_type;
    typedef typename Fun::first_argument_type first_argument_type;
    typedef typename Fun::second_argument_type second_argument_type;
    typedef typename Fun:result_type result_type;
    typedef Microsoft::VisualC::StlClr::UnaryDelegate<
        second_argument_type, result_type>
        delegate_type;

    binder1st(Fun% functor, first_argument_type left);
    binder1st(binder1st<Arg>% right);

    result_type operator()(second_argument_type right);
    operator delegate_type^();
    };

Paramètres

  • Fun
    Le type du functor stocké.

Fonctions membres

Définition de type

Description

delegate_type

Le type du délégué générique.

first_argument_type

Le type du premier argument de functor.

result_type

Le type du résultat de functor.

second_argument_type

Le type de l'argument de functor deuxième.

stored_function_type

Le type du functor.

Membre

Description

binder1st

Construit le functor.

Opérateur

Description

operator()

Calcule la fonction souhaitée.

delegate_type^ d'opérateur ()

Effectue un cast du functor à un délégué.

Notes

La classe de modèle décrit un functor d'un qui stocke un functor à deux arguments et un premier argument.Elle définit l'opérateur membre operator() afin que, lorsque l'objet est appelé comme fonction, il retourne le résultat de l'appel du functor stocké avec le premier argument stocké et le deuxième argument fourni.

Vous pouvez également passer l'objet comme argument de fonction dont le type est delegate_type^ et il sera converti en conséquence.

Exemple

// cliext_binder1st.cpp 
// compile with: /clr 
#include <cliext/algorithm> 
#include <cliext/functional> 
#include <cliext/vector> 
 
typedef cliext::vector<int> Myvector; 
int main() 
    { 
    Myvector c1; 
    c1.push_back(4); 
    c1.push_back(3); 
    Myvector c3(2, 0); 
 
// display initial contents " 4 3" 
    for each (int elem in c1) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
// transform and display 
    cliext::minus<int> sub_op; 
    cliext::binder1st<cliext::minus<int> > subfrom3(sub_op, 3); 
 
    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(), 
        subfrom3); 
    for each (int elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
// transform and display with function 
    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(), 
        bind1st(sub_op, 3)); 
    for each (int elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
    return (0); 
    } 
 
  

Configuration requise

en-tête :<cliext/fonctionnel>

Cliext del'espace de noms :

Voir aussi

Référence

bind1st (STL/CLR)