Man Page logical_and.3

                       Standard C++ Library
             Copyright 1998, Rogue Wave Software, Inc.



      - A binary function object that returns true if both of its
     arguments are true.


     #include <functional>
     template <class T>
     struct logical_and : public binary_function<T, T, bool>;


     logical_and is a  binary  function  object.  Its  operator()
     returns  true  if  both  x  and  y  are true. You can pass a
     logical_and object to any algorithm that requires  a  binary
     function.  For  example,  the  transform algorithm applies a
     binary operation to corresponding values in two  collections
     and  stores  the result of the function. logical_and is used
     in that algorithm in the following manner:

     vector<bool> vec1;
     vector<bool> vec2;
     vector<bool> vecResult;
     transform(vec1.begin(), vec1.end(),
              vecResult.begin(), logical_and<bool>());

     After this call to  transform,  vecResult(n)  contains  a  1
     (true)  if  both vec1(n) and vec2(n) are true or a 0 (false)
     if either vec1(n) or vec2(n) is false.


     template <class T>
     struct logical_and : binary_function<T, T, bool> {
      bool operator() (const T&, const T&) const;


     If your compiler does not support default  template  parame-
     ters, you always need to supply the Allocator template argu-
     ment. For instance, you have to write:

     vector<bool, allocator<bool> >

     instead of:


     If your compiler does not support namespaces,  then  you  do
     not need the using declaration for std.


     binary_function, Function_Objects