Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::order::HasTotalOrderOperators Concept Referenceexport

Pure syntactic shape: T supports the spaceship operator <=> alongside the four partial-order operators (the latter return L::Ω). More...

Concept definition

template<typename T, typename L Boole>
HasPartialOrderOperators<T, L> && std::three_way_comparable<T>
Pure syntactic shape: T supports the partial-order operators <, <=, >, >= with results in the truth-v...
Definition poset.cppm:130
Pure syntactic shape: T supports the spaceship operator <=> alongside the four partial-order operator...
Definition total.cppm:93

Detailed Description

Pure syntactic shape: T supports the spaceship operator <=> alongside the four partial-order operators (the latter return L::Ω).

The C++20 three-way comparison shape: a <=> that returns one of std::strong_ordering / std::weak_ordering / std::partial_ordering, witnessing that T can act as a totally / weakly ordered carrier at the operator level. Composes HasPartialOrderOperators<T, L> with the spaceship so callsites can check the full relational surface in one constraint.

Note: a partial-ordering <=> still satisfies this shape (the spaceship's three-way result type carries the order strength); for an axiomatic total-order witness use IsTotallyOrdered, which additionally requires std::totally_ordered (excluded middle on comparability). The shape vs. axiom split follows the HasRingOperators / IsRing pattern from PR #394. L defaults to Boole, mirroring HasPartialOrderOperators / IsPreOrdered.