Condividi tramite


logical_and (STL/CLR)

La classe modello descrive un functor che, una volta chiamato, restituisce true solo se sia il primo argomento che il secondo test come true.Utilizzarla si specifica un oggetto funzione in termini di tipo di argomento.

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

Parametri

  • Argomento
    Il tipo degli argomenti.

Funzioni membro

Definizione del tipo

Descrizione

delegate_type

Il delegato generico.

first_argument_type

Il tipo del primo argomento di functor.

result_type

Il tipo del risultato di functor.

second_argument_type

Il tipo dell'argomento di functor secondo.

Membro

Descrizione

logical_and

Costruisce il functor.

Operatore

Descrizione

operatore ()

Calcola la funzione desiderata.

delegate_type^ operatore

Esegue il cast di functor a un delegato.

Note

La classe modello descrive un functor a due argomenti.Definisce l'operatore operator() del membro in modo che, quando l'oggetto viene chiamato come funzione, restituisce true solo se sia il primo argomento che il secondo test come true.

È anche possibile passare l'oggetto come argomento della funzione il cui tipo è delegate_type^ e verrà convertito in modo appropriato.

Esempio

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

Requisiti

intestazione: <cliext/funzionale>

Cliext diSpazio dei nomi:

Vedere anche

Riferimenti

logical_or (STL/CLR)