> A hypothetical C++ compiler supporting "strict total order" for '<'
> operator would have to emit a more expensive comparison for '<' every
> time it could not prove the pointers point to the same array, ...
That's not hypothetical but true for the ancient 808x- / 80286-compilers
depending on the chosen memory-model. Even the early MS Quick C compiler
has full blown pointer arithmetics for every pointer if you chose com-
pact, large or huge memory model. And even if you chose the small or
medium memory-model with one data-segment you usually address memory
outside the data-segment with pointers attributed as far or huge
which gives you the same comparison-semantics. And with huge you might
even address arrays spanning more than one segment if the data type
fits an even numbered times in a segment.
And most of that isn't specified in the language-standard but is com-
piler and platforms-specific.