std::greater_equal(3)

NAME
std::greater_equal - std::greater_equal

Synopsis
   Defined in header <functional>
   template< class T > (until C++14)
   struct greater_equal;
   template< class T = void > (since C++14)
   struct greater_equal;
   Function object for performing comparisons. Unless specialized, invokes operator>=
   on type T.
  Implementation-defined strict total order over pointers
   A specialization of std::greater_equal for any pointer type yields the
   implementation-defined strict total order, even if the built-in >= operator does
   not.
   The implementation-defined strict total order is consistent with the partial order
   imposed by built-in comparison operators (
   <=>,
   (since C++20)<, >, <=, and >=), and consistent among following standard function
   objects:
     * std::less, std::greater, std::less_equal, and std::greater_equal, when the
       template argument is a pointer type
       or void
       (since C++14)
     * std::ranges::equal_to, std::ranges::not_equal_to,
       std::ranges::less, std::ranges::greater, std::ranges::less_equal, (since C++20)
       std::ranges::greater_equal, and std::compare_three_way

Specializations
   greater_equal<void> function object implementing x >= y deducing argument and return
   (C++14) 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() checks if the first argument is greater than or equal to the second
              (public member function) std::greater_equal::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)
   Checks whether lhs is greater than or equal to rhs.

Parameters
   lhs, rhs - values to compare

Return value
   For T which is not a pointer type, true if lhs >= rhs, false otherwise.
   For T which is a pointer type, true if lhs does not precede rhs in the
   implementation-defined strict total order, false otherwise.

Exceptions
   May throw implementation-defined exceptions.

Possible implementation
   constexpr bool operator()(const T &lhs, const T &rhs) const
   {
       return lhs >= rhs; // assumes that the implementation uses a flat address space
   }

See also
   less function object implementing x < y
                        (class template)
   ranges::greater_equal function object implementing x >= y
   (C++20) (class)