LessThanComparable |
Detailed Description
A type is LessThanComparable if it is ordered: it must be possible to compare two objects of that type using operator<
, and operator<
must be a partial ordering.
- Refinement Of:
- Associated Types:
- Notation:
X
A type that is a model of LessThanComparable x
,y
,z
Object of type X
- Definitions:
- Consider the relation
!(x < y) && !(y < x)
. If this relation is transitive (that is, if!(x < y) && !(y < x) && !(y < z) && !(z < y)
implies!(x < z) && !(z < x)
), then it satisfies the mathematical definition of an equivalence relation. In this case,operator<
is a strict weak ordering.
- If
operator<
is a strict weak ordering, and if each equivalence class has only a single element, thenoperator<
is a total ordering.
- Valid Expressions:
Name Expression Type requirements Return type Less x < y
Convertible to bool
Greater x > y
Convertible to bool
Less or equal x <= y
Convertible to bool
Greater or equal x >= y
Convertible to bool
- Expression Semantics:
Name Expression Precondition Semantics Postcondition Less x < y
x
andy
are in the domain of<
Greater x > y
x
andy
are in the domain of<
Equivalent to y < x
[1]Less or equal x <= y
x
andy
are in the domain of<
Equivalent to !(y < x)
[1]Greater or equal x >= y
x
andy
are in the domain of<
Equivalent to !(x < y)
[1]
- Complexity Guarantees:
- Invariants:
Irreflexivity x < x
must be false.Antisymmetry x < y
implies !(y < x) [2]Transitivity x < y
andy < z
impliesx < z
[3]
- Type(s) Modeling this Concept:
- int
- adobe::name_t
- Notes:
- [1] Only
operator<
is fundamental; the other inequality operators are essentially syntactic sugar.
- [3] Because of irreflexivity and transitivity,
operator<
always satisfies the definition of a partial ordering. The definition of a strict weak ordering is stricter, and the definition of a total ordering is stricter still.
- See Also: