std::experi...eater_equal(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… std::experimental::ranges::greater_equal πŸ’…

okay so welcome to the std::experimental::ranges::greater_equal(3) page, bestie β€” this one comes straight outta the C++ Standard Libary manual (yes, the manual name is literally spelled like that, periodt).


🌸 NAME 🌸

std::experimental::ranges::greater_equal β€” std::experimental::ranges::greater_equal

that's the whole NAME section, she's short and iconic πŸ’–


✨ SYNOPSIS ✨

Defined in header <experimental/ranges/functional>

template< class T = void >

    requires StrictTotallyOrdered<T> ||
             Same<T, void> ||
(ranges TS)
             /* < on two const T lvalues invokes a built-in operator
        comparing pointers */

struct greater_equal;
template<>
(ranges TS)
struct greater_equal<void>;

Function object for performing comparisons. The primary template invokes operator< on const lvalues of type T and negates the result. The specialization greater_equal<void> deduces the parameter types of the function call operator from the arguments (but not the return type).

All specializations of greater_equal are Semiregular.


🧩 MEMBER TYPES 🧩

  • Member type: is_transparent (member only of greater_equal<void> specialization) β€” Definition: /* unspecified */

πŸ› οΈ MEMBER FUNCTIONS πŸ› οΈ

  • operator() β€” checks if the first argument is greater than or equal to the second (public member function)

🎯 std::experimental::ranges::greater_equal::operator() 🎯

here are the two overloads, bestie:

constexpr bool operator()(const T& x, const T& y) const;

(1) β€” member only of primary greater_equal<T> template

template< class T, class U >

    requires StrictTotallyOrderedWith<T, U> ||
             /* std::declval<T>() <
                std::declval<U>() resolves to
                a built-in operator comparing
                pointers */

constexpr bool operator()(T&& t, U&& u) const;

(2) β€” member only of greater_equal<void> specialization

  1. Compares x and y. Equivalent to return !ranges::less<>{}(x, y);.
  2. Compares t and u. Equivalent to return !ranges::less<>{}(std::forward<T>(t), std::forward<U>(u));.

πŸ“ NOTES πŸ“

Unlike std::greater_equal, ranges::greater_equal requires all six comparison operators <, <=, >, >=, == and != to be valid (via the StrictTotallyOrdered and StrictTotallyOrderedWith constraints) and is entirely defined in terms of ranges::less. However, the implementation is free to use operator>= directly, because those concepts require the results of the comparison operators to be consistent.


🫠 EXAMPLE 🫠

This section is incomplete. Reason: no example


πŸ‘€ SEE ALSO πŸ‘€

  • greater_equal β€” function object implementing x >= y (class template)

🏷️ CATEGORY 🏷️

  • Todo no example

that's the whole vibe from http://cppreference.com, source/version and date 2024.06.10 β€” mwah, slay, and happy comparing πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from