Bagikan melalui


functional (STL/CLR)

Sertakan header <cliext/functional> STL/CLR untuk menentukan templat kelas fungsional dan delegasi dan fungsi templat terkait.

Sintaks

#include <functional>

Persyaratan

Header:<cliext/functional>

kumpulan nama XML: cliext

Deklarasi

Delegasikan Deskripsi
binary_delegate (STL/CLR) Delegasi dua argumen.
binary_delegate_noreturn (STL/CLR) Delegasi dua argumen mengembalikan void.
unary_delegate (STL/CLR) Delegasi satu argumen.
unary_delegate_noreturn (STL/CLR) Delegasi satu argumen mengembalikan void.
Kelas Deskripsi
binary_negate (STL/CLR) Functor untuk meniadakan funktor dua argumen.
binder1st (STL/CLR) Functor untuk mengikat argumen pertama ke functor dua argumen.
binder2nd (STL/CLR) Functor untuk mengikat argumen kedua ke functor dua argumen.
divides (STL/CLR) Bagi functor.
equal_to (STL/CLR) Funktor perbandingan yang sama.
greater (STL/CLR) Funktor perbandingan yang lebih besar.
greater_equal (STL/CLR) Lebih besar atau sama dengan funktor perbandingan.
less (STL/CLR) Lebih sedikit funktor perbandingan.
less_equal (STL/CLR) Funktor perbandingan yang kurang atau sama.
logical_and (STL/CLR) Logis DAN funktor.
logical_not (STL/CLR) Funktor NOT logis.
logical_or (STL/CLR) Logis ATAU funktor.
minus (STL/CLR) Kurangi funktor.
modulus (STL/CLR) Modulus functor.
multiplies (STL/CLR) Kalikan funktor.
negate (STL/CLR) Functor untuk mengembalikan argumennya dinegasikan.
not_equal_to (STL/CLR) Tidak sama dengan funktor perbandingan.
plus (STL/CLR) Tambahkan functor.
unary_negate (STL/CLR) Functor untuk meniadakan funktor satu argumen.
Fungsi Deskripsi
bind1st (STL/CLR) Menghasilkan binder1st untuk argumen dan funktor.
bind2nd (STL/CLR) Menghasilkan binder2nd untuk argumen dan funktor.
not1 (STL/CLR) Menghasilkan unary_negate untuk funktor.
not2 (STL/CLR) Menghasilkan binary_negate untuk funktor.

Anggota

binary_delegate (STL/CLR)

Kelas generik menjelaskan delegasi dua argumen. Anda menggunakannya menentukan delegasi dalam hal argumennya dan jenis pengembaliannya.

Sintaks

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

Parameter

Arg1
Jenis argumen pertama.

Arg2
Jenis argumen kedua.

Result
Jenis pengembalian.

Keterangan

Delegasi generik menjelaskan fungsi dua argumen.

Dalam templat fungsi ini:

binary_delegate<int, int, int> Fun1;

binary_delegate<int, int, int> Fun2;

jenis Fun1 dan Fun2 merupakan sinonim, sementara untuk:

delegate int Fun1(int, int);

delegate int Fun2(int, int);

mereka bukan tipe yang sama.

Contoh

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

Kelas generik menjelaskan delegasi dua argumen yang mengembalikan void. Anda menggunakannya menentukan delegasi dalam hal argumennya.

Sintaks

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

Parameter

Arg1
Jenis argumen pertama.

Arg2
Jenis argumen kedua.

Keterangan

Delegasi generik menjelaskan fungsi dua argumen yang mengembalikan void.

Dalam templat fungsi ini:

binary_delegate_noreturn<int, int> Fun1;

binary_delegate_noreturn<int, int> Fun2;

jenis Fun1 dan Fun2 merupakan sinonim, sementara untuk:

delegate void Fun1(int, int);

delegate void Fun2(int, int);

mereka bukan tipe yang sama.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan NOT logis dari funktor dua argumen yang disimpan. Anda menggunakannya menentukan objek fungsi dalam hal funktor yang disimpan.

Sintaks

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
Jenis funktor yang disimpan.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
stored_function_type Jenis funktor.
Anggota Deskripsi
binary_negate Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^() Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen yang menyimpan functor dua argumen lainnya. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan NOT logis dari funktor tersimpan yang dipanggil dengan dua argumen.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

binder1st Menghasilkan untuk argumen dan functor.

Sintaks

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

Parameter Templat

Arg
Jenis argumen.

Fun
Jenis funktor.

Parameter Fungsi

functor
Jamur untuk dibungkus.

left
Argumen pertama yang akan dibungkus.

Keterangan

Templat fungsi mengembalikan binder1st<Fun>(functor, left). Anda menggunakannya sebagai cara mudah untuk membungkus funktor dua argumen dan argumen pertamanya dalam funktor satu argumen yang menyebutnya dengan argumen kedua.

Contoh

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

binder2nd Menghasilkan untuk argumen dan functor.

Sintaks

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

Parameter Templat

Arg
Jenis argumen.

Fun
Jenis funktor.

Parameter Fungsi

functor
Jamur untuk dibungkus.

right
Argumen kedua untuk dibungkus.

Keterangan

Templat fungsi mengembalikan binder2nd<Fun>(functor, right). Anda menggunakannya sebagai cara mudah untuk membungkus funktor dua argumen dan argumen kedua dalam funktor satu argumen yang memanggilnya dengan argumen pertama.

Contoh

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

Kelas templat menjelaskan funktor satu argumen yang, ketika dipanggil, mengembalikan funktor dua argumen tersimpan yang disebut dengan argumen pertama yang disimpan dan argumen kedua yang disediakan. Anda menggunakannya menentukan objek fungsi dalam hal funktor yang disimpan.

Sintaks

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
Jenis funktor yang disimpan.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
stored_function_type Jenis funktor.
Anggota Deskripsi
binder1st Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^() Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor satu argumen yang menyimpan funktor dua argumen dan argumen pertama. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan hasil memanggil funktor tersimpan dengan argumen pertama yang disimpan dan argumen kedua yang disediakan.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor satu argumen yang, ketika dipanggil, mengembalikan funktor dua argumen tersimpan yang disebut dengan argumen pertama yang disediakan dan argumen kedua yang disimpan. Anda menggunakannya menentukan objek fungsi dalam hal funktor yang disimpan.

Sintaks

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
Jenis funktor yang disimpan.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
stored_function_type Jenis funktor.
Anggota Deskripsi
binder2nd Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^() Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor satu argumen yang menyimpan funktor dua argumen dan argumen kedua. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan hasil memanggil funktor tersimpan dengan argumen pertama yang disediakan dan argumen kedua yang disimpan.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan argumen pertama yang dibagi dengan yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen dan nilai pengembalian.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
divides Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^() Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan argumen pertama yang dibagi dengan yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama sama dengan yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
equal_to Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^() Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama sama dengan yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama lebih besar dari yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
greater Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama lebih besar dari yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama lebih besar dari atau sama dengan yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
greater_equal Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama lebih besar dari atau sama dengan yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama kurang dari yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
less Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama kurang dari yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama kurang dari atau sama dengan yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
less_equal Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama kurang dari atau sama dengan yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama dan pengujian kedua sebagai true. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
logical_and Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama dan pengujian kedua sebagai true.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumennya diuji sebagai false. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
argument_type Jenis argumen functor.
delegate_type Jenis delegasi generik.
result_type Jenis hasil functor.
Anggota Deskripsi
logical_not Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor satu argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumennya diuji sebagai false.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama atau pengujian kedua sebagai true. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
logical_or Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama atau pengujian kedua sebagai true.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan argumen pertama dikurangi yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen dan nilai pengembalian.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
minus Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan argumen pertama dikurangi yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, saat dipanggil, mengembalikan modul argumen pertama yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen dan nilai pengembalian.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
modulus Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan modul argumen pertama yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan argumen pertama kali yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen dan nilai pengembalian.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
multiplies Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan argumen pertama kali yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan argumennya yang dinegasikan. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
argument_type Jenis argumen functor.
delegate_type Jenis delegasi generik.
result_type Jenis hasil functor.
Anggota Deskripsi
negate Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor satu argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan argumen yang dinegasikan.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan true hanya jika argumen pertama tidak sama dengan yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
not_equal_to Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan true hanya jika argumen pertama tidak sama dengan yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

unary_negate Menghasilkan untuk funktor.

Sintaks

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

Parameter Templat

Fun
Jenis funktor.

Parameter Fungsi

functor
Jamur untuk dibungkus.

Keterangan

Templat fungsi mengembalikan unary_negate<Fun>(functor). Anda menggunakannya sebagai cara mudah untuk membungkus funktor satu argumen dalam funktor yang memberikan NOT logisnya.

Contoh

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

binary_negate Menghasilkan untuk funktor.

Sintaks

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

Parameter Templat

Fun
Jenis funktor.

Parameter Fungsi

functor
Jamur untuk dibungkus.

Keterangan

Templat fungsi mengembalikan binary_negate<Fun>(functor). Anda menggunakannya sebagai cara mudah untuk membungkus funktor dua argumen dalam funktor yang memberikan NOT logisnya.

Contoh

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

Kelas templat menjelaskan funktor yang, saat dipanggil, mengembalikan argumen pertama ditambah yang kedua. Anda menggunakannya menentukan objek fungsi dalam hal jenis argumennya.

Sintaks

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
Jenis argumen dan nilai pengembalian.

Fungsi Anggota

Definisi Tipe Deskripsi
delegate_type Jenis delegasi generik.
first_argument_type Jenis argumen pertama functor.
result_type Jenis hasil functor.
second_argument_type Jenis argumen kedua funktor.
Anggota Deskripsi
plus Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
operator delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor dua argumen. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, ia mengembalikan argumen pertama ditambah yang kedua.

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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

Kelas generik menjelaskan delegasi satu argumen. Anda menggunakannya menentukan delegasi dalam hal argumennya dan jenis pengembaliannya.

Sintaks

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

Parameter

Arg
Jenis argumen.

Result
Jenis pengembalian.

Keterangan

Delegasi generik menjelaskan fungsi satu argumen.

Dalam templat fungsi ini:

unary_delegate<int, int> Fun1;

unary_delegate<int, int> Fun2;

jenis Fun1 dan Fun2 merupakan sinonim, sementara untuk:

delegate int Fun1(int);

delegate int Fun2(int);

mereka bukan tipe yang sama.

Contoh

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

Kelas generik menjelaskan delegasi satu argumen yang mengembalikan void. Anda menggunakannya menentukan delegasi dalam hal jenis argumennya.

Sintaks

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

Parameter

Arg
Jenis argumen.

Keterangan

Delegasi generik menjelaskan fungsi satu argumen yang mengembalikan void.

Dalam templat fungsi ini:

unary_delegate_noreturn<int> Fun1;

unary_delegate_noreturn<int> Fun2;

jenis Fun1 dan Fun2 merupakan sinonim, sementara untuk:

delegate void Fun1(int);

delegate void Fun2(int);

mereka bukan tipe yang sama.

Contoh

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

Kelas templat menjelaskan funktor yang, ketika dipanggil, mengembalikan NOT logis dari funktor satu argumen yang disimpan. Anda menggunakannya menentukan objek fungsi dalam hal funktor yang disimpan.

Sintaks

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
Jenis funktor yang disimpan.

Fungsi Anggota

Definisi Tipe Deskripsi
argument_type Jenis argumen functor.
delegate_type Jenis delegasi generik.
result_type Jenis hasil functor.
Anggota Deskripsi
unary_negate Membangun funktor.
Operator Deskripsi
operator() Menghitung fungsi yang diinginkan.
delegate_type^ Melemparkan funktor ke delegasi.

Keterangan

Kelas templat menjelaskan funktor satu argumen yang menyimpan functor satu argumen lainnya. Ini mendefinisikan operator operator() anggota sehingga, ketika objek dipanggil sebagai fungsi, itu mengembalikan NOT logis dari funktor tersimpan yang dipanggil dengan argumen .

Anda juga dapat meneruskan objek sebagai argumen fungsi yang jenisnya dan delegate_type^ akan dikonversi dengan tepat.

Contoh

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