Title
Container requirements (and other library text) should say "strict total order", not just "total order"
Status
new
Section
[comparisons][container.requirements.general][thread.thread.id]
Submitter
Matt Austern

Created on 2015-10-08.00:00:00 last changed 103 months ago

Messages

Date: 2015-10-08.00:00:00

A number of places in the library, including [comparisons]/14, the Optional container requirements in [container.requirements.general], and [thread.thread.id]/8, use the phrase "total order". Unfortunately, that phrase is ambiguous. In mathematics, the most common definition is that a relation is a total order if it's total, transitive, and antisymmetric in the sense that x≤y ∧ y≤x ⇒ x=y. What we really want is a strict total order: a relation < is a strict total order if it's total, transitive, and antisymmetric in the sense that exactly one of x<y, y<x, and x=y holds.

The non-normative note in [alg.sorting]/4 correctly uses the phrase "strict total ordering" rather than simply "total ordering".

We could address this issue by replacing "total order" with "strict total order" everywhere it appears, since I think there are no cases where we actually want a non-strict total order, or we could add something in Clause 17 saying that we always mean strict total order whenever we say total order.

History
Date User Action Args
2015-10-08 00:00:00admincreate