On Tuesday, 12 January 2016 at 19:28:36 UTC, Andrei Alexandrescu
wrote:
On 01/12/2016 02:13 PM, John Colvin wrote:
a<=b and b<=a must also be false.
Would the advice "Only use < and == for partially-ordered data"
work? -- Andrei
If by that you mean "Only use <= or >= on data that defines a
total ordering"* I guess it would work, but it has some pretty
big downsides:
1) Annoying to use.
2) You have to use the opCmp return 0 (which normally means
a[<>]=b && b[<>]=a) to mean "not comparable".
3) Not enforceable. Because of 2 you'll always get true if you
use >= or <= on any a pair that doesn't have a defined ordering.
4) inefficient (have to do both < and == separately which can be
a lot more work than <=).
*would be safer to say "types that define", but strictly
speaking...