functional (STL/CLR)

Schließen Sie den STL/CLR-Header ein <cliext/functional> , um eine Reihe von Vorlagenklassen und zugehörigen Vorlagen delegaten und Funktionen zu definieren.

Syntax

#include <functional>

Requirements (Anforderungen)

Header:< cliext/functional>

Namespace: cliext

Deklarationen

Delegat BESCHREIBUNG
binary_delegate (STL/CLR) Delegat mit zwei Argumenten.
binary_delegate_noreturn (STL/CLR) Ein Delegat mit zwei Argumenten, der zurücksendet void.
unary_delegate (STL/CLR) Ein-Argument-Delegat.
unary_delegate_noreturn (STL/CLR) Ein-Argument-Delegat, der zurücksendet void.
Klasse BESCHREIBUNG
binary_negate (STL/CLR) Funktor zum Negieren eines Funktors mit zwei Argumenten.
binder1st (STL/CLR) Funktor zum Binden des ersten Arguments an einen Funktor mit zwei Argumenten.
binder2nd (STL/CLR) Funktor zum Binden des zweiten Arguments an einen Zwei-Argument-Funktor.
divides (STL/CLR) Dividieren des Funktors.
equal_to (STL/CLR) Gleichheitsvergleichs-Funktor.
greater (STL/CLR) Größerer Vergleichstrichter.
greater_equal (STL/CLR) Vergleichstrichter größer oder gleich.
less (STL/CLR) Weniger Vergleichstrichter.
less_equal (STL/CLR) Kleiner oder gleicher Vergleichstrichter.
logical_and (STL/CLR) Logischer AND-Funktor.
logical_not (STL/CLR) Logischer NOT-Funktor.
logical_or (STL/CLR) Logischer OR-Funktor.
minus (STL/CLR) Subtrahieren Sie den Funktor.
modulus (STL/CLR) Modulus-Funktor.
multiplies (STL/CLR) Multiplizieren des Funktors.
negate (STL/CLR) Functor zum Zurückgeben des Arguments negiert.
not_equal_to (STL/CLR) Vergleichstrichter nicht gleich.
plus (STL/CLR) Fügen Sie functor hinzu.
unary_negate (STL/CLR) Funktor zum Negieren eines Funktors mit einem Argument.
Funktion BESCHREIBUNG
bind1st (STL/CLR) Generiert einen binder1st für ein Argument und einen Funktor.
bind2nd (STL/CLR) Generiert einen binder2nd für ein Argument und einen Funktor.
not1 (STL/CLR) Generiert eine unary_negate für einen Funktor.
not2 (STL/CLR) Generiert eine binary_negate für einen Funktor.

Member

binary_delegate (STL/CLR)

Die generetische Klasse beschreibt einen Delegaten mit zwei Argumenten. Sie verwenden sie, um einen Delegaten in Bezug auf das Argument und die Rückgabetypen anzugeben.

Syntax

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

Parameter

Arg1
Der Typ des ersten Arguments.

Arg2
Der Typ des zweiten Arguments.

Ergebnis
Der Rückgabetyp.

Hinweise

Der generetische Delegat beschreibt eine Funktion mit zwei Argumenten.

Beachten Sie, dass für:

binary_delegate<int, int, int> Fun1;

binary_delegate<int, int, int> Fun2;

die Typen Fun1 und Fun2 sind Synonyme, während für:

delegate int Fun1(int, int);

delegate int Fun2(int, int);

sie sind nicht vom gleichen Typ.

Beispiel

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

Die generetische Klasse beschreibt einen Delegaten mit zwei Argumenten, der zurückgibt void. Sie verwenden sie, um einen Delegaten in Bezug auf das Argument anzugeben.

Syntax

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

Parameter

Arg1
Der Typ des ersten Arguments.

Arg2
Der Typ des zweiten Arguments.

Hinweise

Der generetische Delegat beschreibt eine Funktion mit zwei Argumenten, die zurückgibt void.

Beachten Sie, dass für:

binary_delegate_noreturn<int, int> Fun1;

binary_delegate_noreturn<int, int> Fun2;

die Typen Fun1 und Fun2 sind Synonyme, während für:

delegate void Fun1(int, int);

delegate void Fun2(int, int);

sie sind nicht der gleiche Typ.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufruf den logischen NOT-Wert des gespeicherten Funktors mit zwei Argumenten zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen gespeicherten Funktor anzugeben.

Syntax

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^();
    };

Parameter

Fun
Der Typ des gespeicherten Funktors.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnisses.
second_argument_type Der Typ des zweiten Funktorarguments.
stored_function_type Der Typ des Funktors.
Member BESCHREIBUNG
binary_negate Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^() Gibt den Funktor in einen Delegaten um.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten, der einen weiteren Zweiargument-Funktor speichert. Er definiert den Memberoperator operator() , sodass beim Aufruf des Objekts als Funktion das logische NOT des gespeicherten Funktors zurückgegeben wird, der mit den beiden Argumenten aufgerufen wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Generiert einen binder1st für ein Argument und einen Funktor.

Syntax

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

Vorlagenparameter

Arg
Der Typ des Arguments.

Fun
Der Typ des Funktors.

Funktionsparameter

Functor
Der zu umschließende Funktor.

left
Das erste zu umschließende Argument.

Hinweise

Die Vorlagenfunktion gibt binder1st (STL/CLR)<Fun>(functor, left) zurück. Sie verwenden ihn als praktische Möglichkeit, einen Funktor mit zwei Argumenten und sein erstes Argument in einen 1-Argument-Funktor zu umschließen, der ihn mit einem zweiten Argument aufruft.

Beispiel

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

Generiert einen binder2nd für ein Argument und einen Funktor.

Syntax

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

Vorlagenparameter

Arg
Der Typ des Arguments.

Fun
Der Typ des Funktors.

Funktionsparameter

Functor
Der zu umschließende Funktor.

right
Das zweite zu umschließende Argument.

Hinweise

Die Vorlagenfunktion gibt binder2nd (STL/CLR)<Fun>(functor, right) zurück. Sie verwenden ihn als praktische Möglichkeit, einen Funktor mit zwei Argumenten und sein zweites Argument in einem 1-Argument-Funktor zu umschließen, der ihn mit einem ersten Argument aufruft.

Beispiel

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

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor, der beim Aufruf seinen gespeicherten Funktor mit zwei Argumenten zurückgibt, der mit dem gespeicherten ersten Argument und dem angegebenen zweiten Argument aufgerufen wird. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen gespeicherten Funktor anzugeben.

Syntax

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^();
    };

Parameter

Fun
Der Typ des gespeicherten Funktors.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnisses.
second_argument_type Der Typ des zweiten Funktorarguments.
stored_function_type Der Typ des Funktors.
Member BESCHREIBUNG
binder1st Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^() Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor, der einen Zwei-Argument-Functor und ein erstes Argument speichert. Er definiert den Memberoperator operator() so, dass beim Aufruf des Objekts als Funktion das Ergebnis des Aufrufs des gespeicherten Funktors mit dem gespeicherten ersten Argument und dem angegebenen zweiten Argument zurückgegeben wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor, der beim Aufgerufenen seinen gespeicherten Zwei-Argument-Funktor mit dem angegebenen ersten Argument und dem gespeicherten zweiten Argument zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf den gespeicherten Funktor anzugeben.

Syntax

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^();
    };

Parameter

Fun
Der Typ des gespeicherten Funktors.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
stored_function_type Der Typ des Funktors.
Member BESCHREIBUNG
binder2nd Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^() Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor, der einen Zwei-Argument-Functor und ein zweites Argument speichert. Er definiert den Memberoperator operator() so, dass beim Aufruf des Objekts als Funktion das Ergebnis des Aufrufs des gespeicherten Funktors mit dem angegebenen ersten Argument und dem gespeicherten zweiten Argument zurückgegeben wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen das erste Argument dividiert durch das zweite argument zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente und des Rückgabewerts.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
divides Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^() Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() so, dass beim Aufgerufen des Objekts als Funktion das erste Argument dividiert durch das zweite argument zurückgegeben wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn das erste Argument gleich dem zweiten ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
equal_to Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^() Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das erste Argument gleich dem zweiten ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn das erste Argument größer als das zweite ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
greater Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das erste Argument größer als das zweite ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn das erste Argument größer oder gleich dem zweiten argument ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
greater_equal Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das erste Argument größer oder gleich dem zweiten argument ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn das erste Argument kleiner als das zweite argument ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
less Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das erste Argument kleiner als das zweite argument ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn das erste Argument kleiner oder gleich dem zweiten argument ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
less_equal Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das erste Argument kleiner oder gleich dem zweiten argument ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur dann TRUE zurückgibt, wenn sowohl das erste Argument als auch der zweite Test als true gilt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
logical_and Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das -Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn sowohl das erste Argument als auch der zweite Test als true festgelegt sind.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur TRUE zurückgibt, wenn eines der Argumente als false testet. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
argument_type Der Typ des Funktorarguments.
delegate_type Der Typ des generischen Delegaten.
Result_type Der Typ des Funktorergebnis.
Member BESCHREIBUNG
logical_not Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit einem Argument. Sie definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn das Argument als FALSE testet.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen nur dann TRUE zurückgibt, wenn entweder das erste Argument oder das zweite als true testet. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
logical_or Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() so, dass das Objekt beim Aufgerufen als Funktion nur dann TRUE zurückgibt, wenn entweder das erste Argument oder das zweite als TRUE testet.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen das erste Argument abzüglich des zweiten zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente und des Rückgabewerts.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
minus Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() so, dass das erste Argument abzüglich des zweiten zurückgegeben wird, wenn das Objekt als Funktion aufgerufen wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen das erste Argumentmodulo des zweiten zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente und des Rückgabewerts.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
modulus Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() so, dass das erste Argumentmodulo zurückgegeben wird, wenn das Objekt als Funktion aufgerufen wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufruf das erste Argument mal das zweite Argument zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente und des Rückgabewerts.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnisses.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
multiplies Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Gibt den Funktor in einen Delegaten um.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() , sodass beim Aufruf des Objekts als Funktion das erste Argument mal das zweite Argument zurückgegeben wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufruf das argument negiert zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
argument_type Der Typ des Funktorarguments.
delegate_type Der Typ des generischen Delegaten.
Result_type Der Typ des Funktorergebnisses.
Member BESCHREIBUNG
negate Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Gibt den Funktor in einen Delegaten um.

Hinweise

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor. Er definiert den Memberoperator operator() , sodass das Objekt, wenn es als Funktion aufgerufen wird, sein Argument negiert zurückgibt.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufruf nur dann TRUE zurückgibt, wenn das erste Argument ungleich dem zweiten argument ist. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnisses.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
not_equal_to Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Gibt den Funktor in einen Delegaten um.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Er definiert den Memberoperator operator() , sodass beim Aufruf des Objekts als Funktion nur true zurückgegeben wird, wenn das erste Argument ungleich dem zweiten argument ist.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Generiert einen unary_negate für einen Funktor.

Syntax

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

Vorlagenparameter

Fun
Der Typ des Funktors.

Funktionsparameter

Functor
Der zu umschließende Funktor.

Hinweise

Die Vorlagenfunktion gibt unary_negate (STL/CLR) zurück<Fun>(functor). Sie verwenden es als praktische Möglichkeit, einen Funktor mit einem Argument in einen Funktor zu umschließen, der sein logisches NOT liefert.

Beispiel

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

Generiert einen binary_negate für einen Funktor.

Syntax

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

Vorlagenparameter

Fun
Der Typ des Funktors.

Funktionsparameter

Functor
Der zu umschließende Funktor.

Hinweise

Die Vorlagenfunktion gibt binary_negate (STL/CLR) zurück<Fun>(functor). Sie verwenden es als praktische Möglichkeit, einen Zwei-Argument-Funktor in einen Funktor zu umschließen, der sein logisches NOT liefert.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen das erste Argument plus das zweite zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf seinen Argumenttyp anzugeben.

Syntax

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^();
    };

Parameter

Arg
Der Typ der Argumente und des Rückgabewerts.

Elementfunktionen

Typendefinition Beschreibung
delegate_type Der Typ des generischen Delegaten.
first_argument_type Der Typ des ersten Funktorarguments.
Result_type Der Typ des Funktorergebnis.
second_argument_type Der Typ des zweiten Funktorarguments.
Member BESCHREIBUNG
plus Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
operator delegate_type^ Casts the functor to a delegate.

Hinweise

Die Vorlagenklasse beschreibt einen Funktor mit zwei Argumenten. Sie definiert den Memberoperator operator() , sodass das erste Argument plus das zweite argument zurückgegeben wird, wenn das Objekt als Funktion aufgerufen wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

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

Die generetische Klasse beschreibt einen Delegaten mit einem Argument. Sie verwenden sie, um einen Delegaten in Bezug auf das Argument und die Rückgabetypen anzugeben.

Syntax

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

Parameter

Arg
Der Typ des Arguments.

Ergebnis
Der Rückgabetyp.

Hinweise

Der generetische Delegat beschreibt eine Funktion mit einem Argument.

Beachten Sie, dass für:

unary_delegare<int, int> Fun1;

unary_delegare<int, int> Fun2;

die Typen Fun1 und Fun2 sind Synonyme, während für:

delegate int Fun1(int);

delegate int Fun2(int);

sie sind nicht vom gleichen Typ.

Beispiel

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

Die generetische Klasse beschreibt einen Delegaten mit einem Argument, der zurückgibt void. Sie verwenden sie, um einen Delegaten in Bezug auf den Argumenttyp anzugeben.

Syntax

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

Parameter

Arg
Der Typ des Arguments.

Hinweise

Der generetische Delegat beschreibt eine Funktion mit einem Argument, die zurückgibt void.

Beachten Sie, dass für:

unary_delegare_noreturn<int> Fun1;

unary_delegare_noreturn<int> Fun2;

die Typen Fun1 und Fun2 sind Synonyme, während für:

delegate void Fun1(int);

delegate void Fun2(int);

sie sind nicht vom gleichen Typ.

Beispiel

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

Die Vorlagenklasse beschreibt einen Funktor, der beim Aufgerufenen die logische NOT des gespeicherten 1-Argument-Funktors zurückgibt. Sie verwenden es, um ein Funktionsobjekt in Bezug auf den gespeicherten Funktor anzugeben.

Syntax

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^();
    };

Parameter

Fun
Der Typ des gespeicherten Funktors.

Elementfunktionen

Typendefinition Beschreibung
argument_type Der Typ des Funktorarguments.
delegate_type Der Typ des generischen Delegaten.
Result_type Der Typ des Funktorergebnisses.
Member BESCHREIBUNG
unary_negate Erstellt den Funktor.
Operator BESCHREIBUNG
Operator() Berechnet die gewünschte Funktion.
delegate_type^ Gibt den Funktor in einen Delegaten um.

Hinweise

Die Vorlagenklasse beschreibt einen 1-Argument-Funktor, der einen anderen Einargument-Funktor speichert. Er definiert den Memberoperator operator() , sodass beim Aufruf des Objekts als Funktion das logische NOT des gespeicherten Funktors zurückgegeben wird, der mit dem Argument aufgerufen wird.

Sie können das Objekt auch als Funktionsargument übergeben, dessen Typ ist delegate_type^ und entsprechend konvertiert wird.

Beispiel

// 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