Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La clase de plantilla describe un functor que, cuando se invoca, devuelve la negación lógica de su functor almacenado de dos argumentos.Se utiliza especifica un objeto de función en términos de su functor almacenado.
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^();
};
Parámetros
- Debería
El tipo de functor almacenado.
Funciones miembro
Definición de tipo |
Descripción |
|---|---|
delegate_type |
El tipo de delegado genérico. |
first_argument_type |
El tipo del primer argumento de functor. |
result_type |
El tipo de resultado de functor. |
second_argument_type |
El tipo de argumento de functor segundo. |
stored_function_type |
El tipo de functor. |
Miembro |
Descripción |
|---|---|
binary_negate |
Construye el functor. |
Operador |
Descripción |
|---|---|
operador () |
Calcula la función deseada. |
delegate_type^ de operador () |
Convierte el functor un delegado. |
Comentarios
La clase de plantilla describe un functor de dos argumentos que almacena otro functor de dos argumentos.Define el operador operator() de miembro para que, cuando el objeto se denomina como función, devuelve la negación lógica de functor almacenado denominado con los dos argumentos.
También puede pasar el objeto como argumento de la función cuyo tipo es delegate_type^ y se convierte correctamente.
Ejemplo
// 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);
}
Requisitos
encabezado: <cliext/funcional>
Cliext deespacio de nombres: