class template
std::logical_or
<functional>
template <class T> struct logical_or;
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:
1 2 3 4
|
template <class T> struct logical_or : binary_function <T,T,bool> {
bool 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
- bool operator() (const T& x, const T& y)
- Member function returning the result of x||y.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 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:
true OR true = true
false OR true = true
true OR false = true
false OR false = false
|
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)