[ub] Justification for < not being a total order on pointers?

Gabriel Dos Reis gdr at axiomatics.org
Wed Oct 16 17:53:34 CEST 2013


Ville Voutilainen <ville.voutilainen at gmail.com> writes:

| On 16 October 2013 18:46, Gabriel Dos Reis <gdr at axiomatics.org> wrote:
| 
| 
|     |     My own personal view (not that of chair) is that if std::less<T>(l,r)
|     and
|     |     "l < r" are
|     |     both defined, then they should yield the same answer.
|     |
|     |
|     | Which fails for pointers.
| 
|     "fails" in which sense?  It is certainly true in the current standards
|     these expressions are both defined when 'l' and 'r' are related
|     addresses (relative to the same object), which was exactly my point.
| 
| Fails in the sense that less<int*>(l, r) and l<r do not necessarily yield the
| same answer.

Only on the cases, e.g. input values, where they aren't both defined.
That isn't failure.  You're looking at the value of the proposition when the
preconditions aren't satisfied, we all know what happens :-)

-- Gaby


More information about the ub mailing list