On Thursday, 12 March 2020 at 16:02:14 UTC, H. S. Teoh wrote:
On Thu, Mar 12, 2020 at 08:51:24AM +0000, mark via
Digitalmars-d-learn wrote: [...]
YYY: The range() method is clearly not good D style but I
don't know
how to support foreach (item; aaset) ...
The usual idiom is to overload .opSlice, then you can do:
foreach (item; aaset[]) { ... }
IOW rename .range to .opSlice.
ZZZ: I can't figure out how to support the in operator.
Note that 'x in aa' returns a pointer, not a bool. You could
try:
bool opBinaryRight(string op : "in")(T lhs) {
return (lhs in set) !is null;
}
I renamed .range to .opSlice (and deleted the alias range this)
and foreach(item; aaset) works fine.
As for the != null, that was a mistake (due to Java) which I've
now fixed.
I'm hoping to add union & intersection soon too.
Thanks.