Library: General utilities
Does not inherit
A binary function object that returns true if both of its arguments are true
#include <functional> namespace std { template <class T> struct logical_and; }
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:
list<bool> list1; list<bool> list2; list<bool> listResult; . . . transform(list1.begin(), vec1.end(), list2.begin(), listResult.begin(), logical_and<bool>());
After this call to transform(), listResult(n) contains a 1 (true) if both list1(n) and list2(n) are true, or a 0 (false) if either list1(n) or list2(n) is false.
namespace std { template <class T> struct logical_and : binary_function<T, T, bool> { bool operator() (const T&, const T&) const; }; }
binary_function, Function Objects
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.3.4