...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
In addition to the standard orderings operator
<
and rleated >
<= >=
that you will find in the librarie's function synopsis, intervals
implement some additional orderings that can be useful.
T |
discrete |
continuous |
right_open |
left_open |
closed |
open |
---|---|---|---|---|---|---|
Interval bounds |
dynamic |
dynamic |
static |
static |
static |
static |
Form |
|
|
asymmetric |
asymmetric |
symmetric |
symmetric |
Orderings |
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
bool lower_less(const T&, const T&) bool lower_equal(const T&, const T&) bool lower_less_equal(const T&, const T&)
|
1 |
1 |
1 |
1 |
1 |
1 |
bool upper_less(const T&, const T&) bool upper_equal(const T&, const T&) bool upper_less_equal(const T&, const T&)
|
1 |
1 |
1 |
1 |
1 |
1 |
A central role for the icl plays the exclusive_less
ordering, which is used
in all interval containers. The other orderings can be useful to simplify
comparison of intervals specifically for dynamically bounded ones.
Orderings |
Description |
---|---|
|
|
bool lower_less(const T&, const T&) bool lower_equal(const T&, const T&) bool lower_less_equal(const T&, const T&)
|
Compares the beginnings of intervals. lower_less(x,y) == true; // x begins before y lower_equal(x,y) == true; // x and y begin at the same element lower_less_equal(x,y) == lower_less(x,y) || lower_equal(x,y);
|
bool upper_less(const T&, const T&) bool upper_equal(const T&, const T&) bool upper_less_equal(const T&, const T&)
|
Compares the endings of intervals. upper_less(x,y) == true; // x ends before y upper_equal(x,y) == true; // x and y end at the same element upper_less_equal(x,y) == upper_less(x,y) || upper_equal(x,y);
|
See also . . .
Back to section . . .