3#ifndef TETL_COMPARE_PARTIAL_ORDERING_HPP
4#define TETL_COMPARE_PARTIAL_ORDERING_HPP
12struct partial_ordering {
13 static partial_ordering
const less;
20 return v._isOrdered and v._value == 0;
23 friend constexpr auto operator==(partial_ordering v, partial_ordering w)
noexcept ->
bool =
default;
27 return v._isOrdered and v._value < 0;
32 return v._isOrdered and v._value > 0;
37 return v._isOrdered and v._value <= 0;
42 return v._isOrdered and v._value >= 0;
47 return v._isOrdered and 0 < v._value;
52 return v._isOrdered and 0 > v._value;
57 return v._isOrdered and 0 <= v._value;
62 return v._isOrdered and 0 >= v._value;
65 friend constexpr auto operator<=>(partial_ordering v,
nullptr_t)
noexcept -> partial_ordering {
return v; }
74 : _value{
static_cast<int8_t>(v)}
79 constexpr explicit partial_ordering(detail::compare_result v) noexcept
80 : _value{
static_cast<int8_t>(v)}
Definition adjacent_find.hpp:8
TETL_BUILTIN_INT8 int8_t
Signed integer type with width of exactly 8 bits.
Definition int_t.hpp:11
decltype(nullptr) nullptr_t
etl::nullptr_t is the type of the null pointer literal, nullptr. It is a distinct type that is not it...
Definition nullptr_t.hpp:13
Definition partial_ordering.hpp:12
friend constexpr auto operator>=(nullptr_t, partial_ordering v) noexcept -> bool
Definition partial_ordering.hpp:60
friend constexpr auto operator<=(nullptr_t, partial_ordering v) noexcept -> bool
Definition partial_ordering.hpp:55
friend constexpr auto operator==(partial_ordering v, nullptr_t) noexcept -> bool
Definition partial_ordering.hpp:18
friend constexpr auto operator<(nullptr_t, partial_ordering v) noexcept -> bool
Definition partial_ordering.hpp:45
static partial_ordering const unordered
Definition partial_ordering.hpp:16
static partial_ordering const equivalent
Definition partial_ordering.hpp:14
friend constexpr auto operator>=(partial_ordering v, nullptr_t) noexcept -> bool
Definition partial_ordering.hpp:40
static partial_ordering const greater
Definition partial_ordering.hpp:15
friend constexpr auto operator>(nullptr_t, partial_ordering v) noexcept -> bool
Definition partial_ordering.hpp:50
friend constexpr auto operator<=>(partial_ordering v, nullptr_t) noexcept -> partial_ordering
Definition partial_ordering.hpp:65
friend constexpr auto operator<=(partial_ordering v, nullptr_t) noexcept -> bool
Definition partial_ordering.hpp:35
friend constexpr auto operator<(partial_ordering v, nullptr_t) noexcept -> bool
Definition partial_ordering.hpp:25
friend constexpr auto operator<=>(nullptr_t, partial_ordering v) noexcept -> partial_ordering
Definition partial_ordering.hpp:67
friend constexpr auto operator==(partial_ordering v, partial_ordering w) noexcept -> bool=default
friend constexpr auto operator>(partial_ordering v, nullptr_t) noexcept -> bool
Definition partial_ordering.hpp:30
static partial_ordering const less
Definition partial_ordering.hpp:13