binary_negate (STL/CLR)
Popisuje šablony třídy functor, pokud je volána, vrátí logický o své uložené functor argument dvě.Umožňuje určit funkce objektu z hlediska jeho functor uložené.
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^();
};
Parametry
- Zábava
Typ uložených functor.
Členské funkce
Definice typu |
Popis |
---|---|
delegate_type |
Typ obecného delegáta. |
first_argument_type |
Typ první argument functor. |
result_type |
Typ výsledku functor. |
second_argument_type |
Typ functor druhého argumentu. |
stored_function_type |
Typ functor. |
Člen |
Popis |
---|---|
binary_negate |
Konstrukce functor. |
Operátor |
Popis |
---|---|
Operator() |
Vypočítá požadované funkce. |
operátor delegate_type^() |
Vrhá functor pro delegáta. |
Poznámky
Třída šablony popisuje functor dvě argument, který ukládá jiný argument dvě functor.Definuje operátor členské operator() tak, že když objekt se nazývá jako funkce, vrátí logický ne uložené functor nazývá se dvěma argumenty.
Objekt můžete také předat jako argument funkce, jejíž typ je delegate_type^ a budou převedeny správně.
Příklad
// 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);
}
Požadavky
Záhlaví:<cliext, funkční>
Obor názvů: cliext