binary_delegate (STL/CLR)

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at binary_delegate (STL/CLR).

The genereic class describes a two-argument delegate. You use it specify a delegate in terms of its argument and return types.

Syntax

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

Parameters

Arg1
The type of the first argument.

Arg2
The type of the second argument.

Result
The return type.

Remarks

The genereic delegate describes a two-argument function.

Note that for:

binary_delegate<int, int, int> Fun1;

binary_delegate<int, int, int> Fun2;

the types Fun1 and Fun2 are synonyms, while for:

delegate int Fun1(int, int);

delegate int Fun2(int, int);

they are not the same type.

Example

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

Requirements

Header: <cliext/functional>

Namespace: cliext

See Also

binary_delegate_noreturn (STL/CLR)
unary_delegate (STL/CLR)
unary_delegate_noreturn (STL/CLR)