expression templates
KennyTM~
kennytm at gmail.com
Tue Mar 29 13:33:20 PDT 2011
On Mar 30, 11 03:15, dsimcha wrote:
> == Quote from bearophile (bearophileHUGS at lycos.com)'s article
>> The operator overloading done with opCmp is too much coarse even if you want to
> implement sets with operators like<=< > >= == for subset, etc.
>
> Can you please give an example of where<=,>, etc. are useful for representing
> set operations? My naive opinion (i.e. without understanding your use case) is
> that using comparison operators to represent anything besides partial or total
> ordering is a severe abuse of operator overloading. (Their use to represent
> ordering of corresponding elements of a vector or matrix is a borderline case.)
If 'a <= b' means 'a' is a subset of 'b', then (Set, <=) does form a
partial order.
That said, the current opCmp design is capable of comparing sets and any
partial orders if the return type can be relaxed to 'float':
if (a == b) return 0;
else if (a is subset of b) return -1;
else if (b is subset of a) return 1;
else /* unordered */ return NaN;
More information about the Digitalmars-d
mailing list