| logical_or | class template |
template <class T> struct logical_or; |
<functional> |
Logical OR function object class
This class defines function objects for the "or" logical operation (||).
Generically, function objects are instances of a class with member function operator() defined. This member function allows the object to be used with the same syntax as a regular function call, and therefore it can be used in templates instead of a pointer to a function.
logical_or has its operator() member defined such that it returns true if either (or both) of its arguments are true (using operator||), and false otherwise (when neither of the arguments is true).
This class is derived from binary_function and is defined as:
template <class T> struct logical_or : binary_function <T,T,bool> { T operator() (const T& x, const T& y) const {return x||y;} }; |
Objects of this class can be used with several standard algorithms (see algorithm).
Members
- T operator() (const T& x, const T& y)
- Member function returning the result of x||y.
Example
// logical_or example #include <iostream> #include <functional> #include <algorithm> using namespace std; int main () { bool foo[] = {true,false,true,false}; bool bar[] = {true,true,false,false}; bool result[4]; transform (foo, foo+4, bar, result, logical_or<bool>() ); cout << boolalpha << "Logical OR:\n"; for (int i=0; i<4; i++) cout << foo[i] << " OR " << bar[i] << " = " << result[i] << "\n"; return 0; } |
Output:
Logical OR: |
See also
| logical_and | Logical AND function object class (class template) |
| logical_not | Logical NOT function object class (class template) |
| binary_function | Binary function object base class (class template) |
