std::logical_or(3)

NAME
std::logical_or - std::logical_or

Synopsis
   Defined in header <functional>
   template< class T > (until C++14)
   struct logical_or;
   template< class T = void > (since C++14)
   struct logical_or;
   Function object for performing logical OR (logical disjunction). Effectively calls
   operator|| on type T.

Specializations
   The standard library provides a specialization of std::logical_or when
   T is not specified, which leaves the parameter types and return type
   to be deduced.
                        (since C++14)
   logical_or<void> function object implementing x || y deducing argument
   (C++14) and return types
                    (class template specialization)

Member types
   Type Definition
   result_type (deprecated in C++17)(removed in C++20) bool
   first_argument_type (deprecated in C++17)(removed in C++20) T
   second_argument_type (deprecated in C++17)(removed in C++20) T
   These member types are obtained via publicly inheriting (until C++11)
   std::binary_function<T, T, bool>.

Member functions
   operator() returns the logical OR of the two arguments
              (public member function) std::logical_or::operator()
   bool operator()( const T& lhs, const T& rhs ) const; (until C++14)
   constexpr bool operator()( const T& lhs, const T& rhs ) const; (since C++14)
   Returns the logical OR of lhs and rhs.

Parameters
   lhs, rhs - values to compute logical OR of

Return value
   The result of lhs || rhs.

Exceptions
   May throw implementation-defined exceptions.

Possible implementation
   constexpr bool operator()(const T &lhs, const T &rhs) const
   {
       return lhs || rhs;
   }