C++ Logo

SG12

Advanced search

Subject: Re: [ub] Justification for < not being a total order on pointers?
From: Nevin Liber (nevin_at_[hidden])
Date: 2013-10-16 10:55:32


On 16 October 2013 10:53, Gabriel Dos Reis <gdr_at_[hidden]> wrote:

> Ville Voutilainen <ville.voutilainen_at_[hidden]> writes:
>
> | On 16 October 2013 18:46, Gabriel Dos Reis <gdr_at_[hidden]> 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.
>

Only because they have different preconditions. They shouldn't.

-- 
 Nevin ":-)" Liber  <mailto:nevin_at_[hidden]>  (847) 691-1404



SG12 list run by herb.sutter at gmail.com