defining "in" What is the proper way in D2?

Charles Hixson charleshixsn at earthlink.net
Sun Sep 11 14:00:55 PDT 2011


On 09/11/2011 01:25 PM, Vladimir Panteleev wrote:
> On Sun, 11 Sep 2011 23:02:37 +0300, Charles Hixson
> <charleshixsn at earthlink.net> wrote:
>
>> I can't figure it out from
>> http://www.digitalmars.com/d/2.0/operatoroverloading.html#Binary
>
> // I assume your data structure looks like this
> class Node(Key, Data)
> {
> Key k;
> Node!(Key, Data) left, right;
> int level;
> // ...
>
> void opBinary!("in")(Key k)
> {
> if (level == 0) return false;
> if (k < key) return k in left;
> if (key < k) return k in right;
> return true;
> }
> }

VOID??  I'm going to presume that this should have been bool.
Otherwise, thanks.  That was they syntax I couldn't figure out from the 
docs.

And, yeah.  That's what it looks like.  My find code was wrong, because 
it should have referenced the node, so what I need to do is move the cod 
into the node class.  But it was the syntax of defining the opBinary 
specialization that was hanging me up.  (For some reason I have a hard 
time wrapping my mind around template code.)


More information about the Digitalmars-d-learn mailing list