Partager via


functional (STL/CLR)

Incluez l’en-tête <cliext/functional> STL/CLR pour définir des modèles de classe fonctionnelle et des délégués et fonctions de modèle associés.

Syntaxe

#include <functional>

Spécifications

Header :<cliext/fonctionnel>

Espace de noms : cliext

Déclarations

Déléguer Description
binary_delegate (STL/CLR) Délégué à deux arguments.
binary_delegate_noreturn (STL/CLR) Délégué à deux arguments retournant void.
unary_delegate (STL/CLR) Délégué à un argument.
unary_delegate_noreturn (STL/CLR) Délégué à un argument retournant void.
Classe Description
binary_negate (STL/CLR) Fonctor pour négation d’un fonctor à deux arguments.
binder1st (STL/CLR) Fonctor pour lier le premier argument à un fonctor à deux arguments.
binder2nd (STL/CLR) Fonctor pour lier le deuxième argument à un fonctor à deux arguments.
divides (STL/CLR) Divisez le functor.
equal_to (STL/CLR) Fonctor de comparaison égal.
greater (STL/CLR) Plus grand fonctor de comparaison.
greater_equal (STL/CLR) Fonctor de comparaison supérieur ou égal.
less (STL/CLR) Moins de fonctor de comparaison.
less_equal (STL/CLR) Fonctor de comparaison inférieur ou égal.
logical_and (STL/CLR) Fonctor logique ET.
logical_not (STL/CLR) Fonctor logique NOT.
logical_or (STL/CLR) Fonctor or logique.
minus (STL/CLR) Soustraire le fonctor.
modulus (STL/CLR) Fonctor modulus.
multiplies (STL/CLR) Multipliez le fonctor.
negate (STL/CLR) Fonctor pour renvoyer son argument n’a pas été supprimé.
not_equal_to (STL/CLR) Le fonctor de comparaison n’est pas égal.
plus (STL/CLR) Ajouter un fonctor.
unary_negate (STL/CLR) Fonctor pour négation d’un fonctor à argument unique.
Fonction Description
bind1st (STL/CLR) Génère un binder1st pour un argument et un fonctor.
bind2nd (STL/CLR) Génère un binder2nd pour un argument et un fonctor.
not1 (STL/CLR) Génère une unary_negate pour un fonctor.
not2 (STL/CLR) Génère une binary_negate pour un fonctor.

Membres

binary_delegate (STL/CLR)

La classe générique décrit un délégué à deux arguments. Vous l’utilisez pour spécifier un délégué en termes d’argument et de types de retour.

Syntaxe

generic<typename Arg1,
    typename Arg2,
    typename Result>
    delegate Result binary_delegate(Arg1, Arg2);

Paramètres

Arg1
Type du premier argument.

Arg2
Type du deuxième argument.

Result
Type de retour.

Notes

Le délégué générique décrit une fonction à deux arguments.

Dans ces modèles de fonction :

binary_delegate<int, int, int> Fun1;

binary_delegate<int, int, int> Fun2;

les types Fun1 et Fun2 sont des synonymes, tandis que pour :

delegate int Fun1(int, int);

delegate int Fun2(int, int);

ils ne sont pas du même type.

Exemple

// cliext_binary_delegate.cpp
// compile with: /clr
#include <cliext/functional>

bool key_compare(wchar_t left, wchar_t right)
    {
    return (left < right);
    }

typedef cliext::binary_delegate<wchar_t, wchar_t, bool> Mydelegate;
int main()
    {
    Mydelegate^ kcomp = gcnew Mydelegate(&key_compare);

    System::Console::WriteLine("compare(L'a', L'a') = {0}",
        kcomp(L'a', L'a'));
    System::Console::WriteLine("compare(L'a', L'b') = {0}",
        kcomp(L'a', L'b'));
    System::Console::WriteLine("compare(L'b', L'a') = {0}",
        kcomp(L'b', L'a'));
    System::Console::WriteLine();
    return (0);
    }
compare(L'a', L'a') = False
compare(L'a', L'b') = True
compare(L'b', L'a') = False

binary_delegate_noreturn (STL/CLR)

La classe générique décrit un délégué à deux arguments qui retourne void. Vous l’utilisez pour spécifier un délégué en termes d’argument.

Syntaxe

generic<typename Arg1,
    typename Arg2>
    delegate void binary_delegate(Arg1, Arg2);

Paramètres

Arg1
Type du premier argument.

Arg2
Type du deuxième argument.

Notes

Le délégué générique décrit une fonction à deux arguments qui retourne void.

Dans ces modèles de fonction :

binary_delegate_noreturn<int, int> Fun1;

binary_delegate_noreturn<int, int> Fun2;

les types Fun1 et Fun2 sont des synonymes, tandis que pour :

delegate void Fun1(int, int);

delegate void Fun2(int, int);

ils ne sont pas du même type.

Exemple

// cliext_binary_delegate_noreturn.cpp
// compile with: /clr
#include <cliext/functional>

void key_compare(wchar_t left, wchar_t right)
    {
    System::Console::WriteLine("compare({0}, {1}) = {2}",
        left, right, left < right);
    }

typedef cliext::binary_delegate_noreturn<wchar_t, wchar_t> Mydelegate;
int main()
    {
    Mydelegate^ kcomp = gcnew Mydelegate(&key_compare);

    kcomp(L'a', L'a');
    kcomp(L'a', L'b');
    kcomp(L'b', L'a');
    System::Console::WriteLine();
    return (0);
    }
compare(a, a) = False
compare(a, b) = True
compare(b, a) = False

binary_negate (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne la logique NOT de son fonctor à deux arguments stocké. Vous l’utilisez pour spécifier un objet de fonction en termes de fonctor stocké.

Syntaxe

template<typename Fun>
    ref class binary_negate
    { // 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 bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    explicit binary_negate(Fun% functor);
    binary_negate(binary_negate<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Fun
Type du fonctor stocké.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
stored_function_type Type du functor.
Membre Description
binary_negate Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^() Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments qui stocke un autre fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne la logique NOT du fonctor stocké appelé avec les deux arguments.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_binary_negate.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::less<int> less_op;

    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(),
        cliext::binary_negate<cliext::less<int> >(less_op));
    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,
        c2.begin(), c3.begin(), cliext::not2(less_op));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
1 0
1 0

bind1st (STL/CLR)

Génère un argument et un binder1st fonctor.

Syntaxe

template<typename Fun,
    typename Arg>
    binder1st<Fun> bind1st(Fun% functor,
        Arg left);

Paramètres de modèle

Arg
Type de l’argument.

Fun
Type du functor.

Paramètres de fonction

functor
Le functor à envelopper.

left
Premier argument à encapsuler.

Notes

Le modèle de fonction retourne binder1st<Fun>(functor, left). Vous l’utilisez comme moyen pratique d’encapsuler un fonctor à deux arguments et son premier argument dans un fonctor à un argument qui l’appelle avec un deuxième argument.

Exemple

// cliext_bind1st.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);
    }
4 3
-1 0
-1 0

bind2nd (STL/CLR)

Génère un argument et un binder2nd fonctor.

Syntaxe

template<typename Fun,
    typename Arg>
    binder2nd<Fun> bind2nd(Fun% functor,
        Arg right);

Paramètres de modèle

Arg
Type de l’argument.

Fun
Type du functor.

Paramètres de fonction

functor
Le functor à envelopper.

right
Deuxième argument à encapsuler.

Notes

Le modèle de fonction retourne binder2nd<Fun>(functor, right). Vous l’utilisez comme moyen pratique d’encapsuler un fonctor à deux arguments et son deuxième argument dans un fonctor à un argument qui l’appelle avec un premier argument.

Exemple

// cliext_bind2nd.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::binder2nd<cliext::minus<int> > sub4(sub_op, 4);

    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(),
        sub4);
    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(),
        bind2nd(sub_op, 4));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
0 -1
0 -1

binder1st (STL/CLR)

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

Syntaxe

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
Type du fonctor stocké.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
stored_function_type Type du functor.
Membre Description
binder1st Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^() Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à argument unique qui stocke un fonctor à deux arguments et un premier argument. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le résultat de l’appel du fonctor stocké avec le premier argument stocké et le deuxième argument fourni.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

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);
    }
4 3
-1 0
-1 0

binder2nd (STL/CLR)

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

Syntaxe

template<typename Fun>
    ref class binder2nd
    { // 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<
        first_argument_type, result_type>
        delegate_type;

    binder2nd(Fun% functor, second_argument_type left);
    binder2nd(binder2nd<Arg>% right);

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

Paramètres

Fun
Type du fonctor stocké.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
stored_function_type Type du functor.
Membre Description
binder2nd Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^() Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à argument unique qui stocke un fonctor à deux arguments et un deuxième argument. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le résultat de l’appel du fonctor stocké avec le premier argument fourni et le deuxième argument stocké.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_binder2nd.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::binder2nd<cliext::minus<int> > sub4(sub_op, 4);

    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(),
        sub4);
    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(),
        bind2nd(sub_op, 4));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
0 -1
0 -1

divides (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne le premier argument divisé par la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class divides
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Arg result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    divides();
    divides(divides<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments et valeur de retour.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
divides Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^() Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le premier argument divisé par la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_divides.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 c2;
    c2.push_back(2);
    c2.push_back(1);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 2 1"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::divides<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
2 1
2 3

equal_to (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument est égal à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class equal_to
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    equal_to();
    equal_to(equal_to<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
equal_to Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^() Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument est égal à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_equal_to.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::equal_to<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
1 0

greater (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument est supérieur à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class greater
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    greater();
    greater(greater<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
greater Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument est supérieur à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_greater.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 c2;
    c2.push_back(3);
    c2.push_back(3);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 3 3"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::greater<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
3 3
1 0

greater_equal (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument est supérieur ou égal à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class greater_equal
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    greater_equal();
    greater_equal(greater_equal<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
greater_equal Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument est supérieur ou égal à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_greater_equal.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::greater_equal<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
1 0

less (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument est inférieur à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class less
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    less();
    less(less<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
less Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument est inférieur à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_less.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::less<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
0 1

less_equal (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument est inférieur ou égal à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class less_equal
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    less_equal();
    less_equal(less_equal<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
less_equal Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument est inférieur ou égal à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_less_equal.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 c2;
    c2.push_back(3);
    c2.push_back(3);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 3 3"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::less_equal<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
3 3
0 1

logical_and (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument et le deuxième test sont vrais. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class logical_and
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    logical_and();
    logical_and(logical_and<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
logical_and Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument et le deuxième test sont vrais.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_logical_and.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(2);
    c1.push_back(0);
    Myvector c2;
    c2.push_back(3);
    c2.push_back(0);
    Myvector c3(2, 0);

// display initial contents " 1 0" and " 1 0"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::logical_and<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
2 0
3 0
1 0

logical_not (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si son argument teste la valeur false. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class logical_not
    { // wrap operator()
public:
    typedef Arg argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::UnaryDelegate<
        argument_type, result_type>
        delegate_type;

    logical_not();
    logical_not(logical_not<Arg> %right);

    result_type operator()(argument_type left);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
argument_type Type de l’argument fonctor.
delegate_type Type du délégué générique.
result_type Type du résultat du fonctor.
Membre Description
logical_not Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à argument unique. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si son argument teste comme false.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_logical_not.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(0);
    Myvector c3(2, 0);

// display initial contents " 4 0"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c3.begin(), cliext::logical_not<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 0
0 1

logical_or (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument ou le deuxième test est vrai. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class logical_or
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    logical_or();
    logical_or(logical_or<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
logical_or Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument ou le second teste la valeur true.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_logical_or.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(2);
    c1.push_back(0);
    Myvector c2;
    c2.push_back(0);
    c2.push_back(0);
    Myvector c3(2, 0);

// display initial contents " 2 0" and " 0 0"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::logical_or<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
2 0
0 0
1 0

minus (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne le premier argument moins le deuxième. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class minus
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Arg result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    minus();
    minus(minus<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments et valeur de retour.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
minus Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le premier argument moins le deuxième.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_minus.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 c2;
    c2.push_back(2);
    c2.push_back(1);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 2 1"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::minus<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
2 1
2 2

modulus (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne le premier argument modulo le deuxième. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class modulus
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Arg result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    modulus();
    modulus(modulus<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments et valeur de retour.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
modulus Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le premier argument modulo le second.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_modulus.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(2);
    Myvector c2;
    c2.push_back(3);
    c2.push_back(1);
    Myvector c3(2, 0);

// display initial contents " 4 2" and " 3 1"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::modulus<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 2
3 1
1 0

multiplies (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne le premier argument fois la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class multiplies
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Arg result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    multiplies();
    multiplies(multiplies<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments et valeur de retour.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
multiplies Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le premier argument fois la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_multiplies.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 c2;
    c2.push_back(2);
    c2.push_back(1);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 2 1"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::multiplies<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
2 1
8 3

negate (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne son argument négation. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class negate
    { // wrap operator()
public:
    typedef Arg argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::UnaryDelegate<
        argument_type, result_type>
        delegate_type;

    negate();
    negate(negate<Arg>% right);

    result_type operator()(argument_type left);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
argument_type Type de l’argument fonctor.
delegate_type Type du délégué générique.
result_type Type du résultat du fonctor.
Membre Description
negate Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à argument unique. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne son argument négation.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_negate.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::transform(c1.begin(), c1.begin() + 2,
        c3.begin(), cliext::negate<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 -3
-4 3

not_equal_to (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne true uniquement si le premier argument n’est pas égal à la seconde. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class not_equal_to
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef bool result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    not_equal_to();
    not_equal_to(not_equal_to<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
not_equal_to Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne true uniquement si le premier argument n’est pas égal à la seconde.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_not_equal_to.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::not_equal_to<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
0 1

not1 (STL/CLR)

Génère un unary_negate fonctor pour un fonctor.

Syntaxe

template<typename Fun>
    unary_negate<Fun> not1(Fun% functor);

Paramètres de modèle

Fun
Type du functor.

Paramètres de fonction

functor
Le functor à envelopper.

Notes

Le modèle de fonction retourne unary_negate<Fun>(functor). Vous l’utilisez comme moyen pratique d’encapsuler un functor à argument unique dans un functor qui fournit son non logique.

Exemple

// cliext_not1.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(0);
    Myvector c3(2, 0);

// display initial contents " 4 0"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::logical_not<int> not_op;

    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(),
        cliext::unary_negate<cliext::logical_not<int> >(not_op));
    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(),
        cliext::not1(not_op));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 0
1 0
1 0

not2 (STL/CLR)

Génère un binary_negate fonctor pour un fonctor.

Syntaxe

template<typename Fun>
    binary_negate<Fun> not2(Fun% functor);

Paramètres de modèle

Fun
Type du functor.

Paramètres de fonction

functor
Le functor à envelopper.

Notes

Le modèle de fonction retourne binary_negate<Fun>(functor). Vous l’utilisez comme moyen pratique d’encapsuler un fonctor à deux arguments dans un functor qui fournit son non logique.

Exemple

// cliext_not2.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 c2;
    c2.push_back(4);
    c2.push_back(4);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 4 4"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::less<int> less_op;

    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(),
        cliext::binary_negate<cliext::less<int> >(less_op));
    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,
        c2.begin(), c3.begin(), cliext::not2(less_op));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
4 4
1 0
1 0

plus (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne le premier argument plus le deuxième. Vous l’utilisez pour spécifier un objet de fonction en termes de son type d’argument.

Syntaxe

template<typename Arg>
    ref class plus
    { // wrap operator()
public:
    typedef Arg first_argument_type;
    typedef Arg second_argument_type;
    typedef Arg result_type;
    typedef Microsoft::VisualC::StlClr::BinaryDelegate<
        first_argument_type, second_argument_type, result_type>
        delegate_type;

    plus();
    plus(plus<Arg>% right);

    result_type operator()(first_argument_type left,
        second_argument_type right);
    operator delegate_type^();
    };

Paramètres

Arg
Type des arguments et valeur de retour.

Fonctions de membre

Définition de type Description
delegate_type Type du délégué générique.
first_argument_type Type du premier argument du fonctor.
result_type Type du résultat du fonctor.
second_argument_type Type du deuxième argument du fonctor.
Membre Description
plus Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
operator delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à deux arguments. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne le premier argument plus le deuxième.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_plus.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 c2;
    c2.push_back(2);
    c2.push_back(1);
    Myvector c3(2, 0);

// display initial contents " 4 3" and " 2 1"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

    for each (int elem in c2)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::transform(c1.begin(), c1.begin() + 2,
        c2.begin(), c3.begin(), cliext::plus<int>());
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 3
2 1
6 4

unary_delegate (STL/CLR)

La classe générique décrit un délégué à un argument. Vous l’utilisez pour spécifier un délégué en termes d’argument et de types de retour.

Syntaxe

generic<typename Arg,
    typename Result>
    delegate Result unary_delegate(Arg);

Paramètres

Arg
Type de l’argument.

Result
Type de retour.

Notes

Le délégué générique décrit une fonction à argument unique.

Dans ces modèles de fonction :

unary_delegate<int, int> Fun1;

unary_delegate<int, int> Fun2;

les types Fun1 et Fun2 sont des synonymes, tandis que pour :

delegate int Fun1(int);

delegate int Fun2(int);

ils ne sont pas du même type.

Exemple

// cliext_unary_delegate.cpp
// compile with: /clr
#include <cliext/functional>

int hash_val(wchar_t val)
    {
    return ((val * 17 + 31) % 67);
    }

typedef cliext::unary_delegate<wchar_t, int> Mydelegate;
int main()
    {
    Mydelegate^ myhash = gcnew Mydelegate(&hash_val);

    System::Console::WriteLine("hash(L'a') = {0}", myhash(L'a'));
    System::Console::WriteLine("hash(L'b') = {0}", myhash(L'b'));
    return (0);
    }
hash(L'a') = 5
hash(L'b') = 22

unary_delegate_noreturn (STL/CLR)

La classe générique décrit un délégué à un argument qui retourne void. Vous l’utilisez pour spécifier un délégué en termes de type d’argument.

Syntaxe

generic<typename Arg>
    delegate void unary_delegate_noreturn(Arg);

Paramètres

Arg
Type de l’argument.

Notes

Le délégué générique décrit une fonction à argument unique qui retourne void.

Dans ces modèles de fonction :

unary_delegate_noreturn<int> Fun1;

unary_delegate_noreturn<int> Fun2;

les types Fun1 et Fun2 sont des synonymes, tandis que pour :

delegate void Fun1(int);

delegate void Fun2(int);

ils ne sont pas du même type.

Exemple

// cliext_unary_delegate_noreturn.cpp
// compile with: /clr
#include <cliext/functional>

void hash_val(wchar_t val)
    {
    System::Console::WriteLine("hash({0}) = {1}",
       val, (val * 17 + 31) % 67);
    }

typedef cliext::unary_delegate_noreturn<wchar_t> Mydelegate;
int main()
    {
    Mydelegate^ myhash = gcnew Mydelegate(&hash_val);

    myhash(L'a');
    myhash(L'b');
    return (0);
    }
hash(a) = 5
hash(b) = 22

unary_negate (STL/CLR)

La classe de modèle décrit un fonctor qui, lorsqu’il est appelé, retourne la logique NOT de son fonctor un argument stocké. Vous l’utilisez pour spécifier un objet de fonction en termes de fonctor stocké.

Syntaxe

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

    unary_negate(Fun% functor);
    unary_negate(unary_negate<Fun>% right);

    result_type operator()(argument_type left);
    operator delegate_type^();
    };

Paramètres

Fun
Type du fonctor stocké.

Fonctions de membre

Définition de type Description
argument_type Type de l’argument fonctor.
delegate_type Type du délégué générique.
result_type Type du résultat du fonctor.
Membre Description
unary_negate Construit le functor.
Opérateur Description
operator() Calcule la fonction souhaitée.
delegate_type^ Convertit le fonctor en délégué.

Notes

La classe de modèle décrit un fonctor à argument unique qui stocke un autre fonctor un argument. Il définit l’opérateur operator() membre de sorte que, lorsque l’objet est appelé en tant que fonction, il retourne la logique NOT du fonctor stocké appelé avec l’argument.

Vous pouvez également passer l’objet en tant qu’argument de fonction dont le type est delegate_type^ et qu’il sera converti de manière appropriée.

Exemple

// cliext_unary_negate.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(0);
    Myvector c3(2, 0);

// display initial contents " 4 0"
    for each (int elem in c1)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();

// transform and display
    cliext::logical_not<int> not_op;

    cliext::transform(c1.begin(), c1.begin() + 2, c3.begin(),
        cliext::unary_negate<cliext::logical_not<int> >(not_op));
    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(),
        cliext::not1(not_op));
    for each (int elem in c3)
        System::Console::Write(" {0}", elem);
    System::Console::WriteLine();
    return (0);
    }
4 0
1 0
1 0