Re: overloading InExpression

2014-07-02 Thread Vlad Levenfeld via Digitalmars-d-learn
Ah yes I never noticed that "in" was in the binary op table. In my defense, searching for "in" usually yields too many results to be useful. Thanks to everyone for your help!

Re: overloading InExpression

2014-07-02 Thread H. S. Teoh via Digitalmars-d-learn
On Wed, Jul 02, 2014 at 02:35:54PM +, Vlad Levenfeld via Digitalmars-d-learn wrote: > On Wednesday, 2 July 2014 at 14:14:57 UTC, Dicebot wrote: > >struct S > >{ > > int opIn_r(int key) > > { > > return key*2; > > } > >} > > > >void main() > >{ > > assert((42 in S.in

Re: overloading InExpression

2014-07-02 Thread bearophile via Digitalmars-d-learn
Dicebot: Yep, I think it is D1 legacy approach. opBinary should be more appropriate. I hope the usage of the old operator overloading functions will generate deprecation messages soon. Bye, bearophile

Re: overloading InExpression

2014-07-02 Thread Kozzi11 via Digitalmars-d-learn
On Wednesday, 2 July 2014 at 14:35:55 UTC, Vlad Levenfeld wrote: On Wednesday, 2 July 2014 at 14:14:57 UTC, Dicebot wrote: struct S { int opIn_r(int key) { return key*2; } } void main() { assert((42 in S.init) == 84); } Thanks! I wonder, why the

Re: overloading InExpression

2014-07-02 Thread Dicebot via Digitalmars-d-learn
On Wednesday, 2 July 2014 at 15:36:23 UTC, Kozzi11 wrote: Thanks! I wonder, why the _r and lack of documentation? Maybe something from old days? But in current http://dlang.org/operatoroverloading.html#Binary"; target="_blank">doc there is a opBinary: Yep, I think it is D1 legacy approach. op

Re: overloading InExpression

2014-07-02 Thread Ali Çehreli via Digitalmars-d-learn
On 07/02/2014 07:35 AM, Vlad Levenfeld wrote: On Wednesday, 2 July 2014 at 14:14:57 UTC, Dicebot wrote: struct S { int opIn_r(int key) { return key*2; } } void main() { assert((42 in S.init) == 84); } Thanks! I wonder, why the _r I think it is the old syntax, meaning

Re: overloading InExpression

2014-07-02 Thread Vlad Levenfeld via Digitalmars-d-learn
On Wednesday, 2 July 2014 at 14:14:57 UTC, Dicebot wrote: struct S { int opIn_r(int key) { return key*2; } } void main() { assert((42 in S.init) == 84); } Thanks! I wonder, why the _r and lack of documentation?

Re: overloading InExpression

2014-07-02 Thread Dicebot via Digitalmars-d-learn
struct S { int opIn_r(int key) { return key*2; } } void main() { assert((42 in S.init) == 84); }

overloading InExpression

2014-07-02 Thread Vlad Levenfeld via Digitalmars-d-learn
Is this possible? The documentation for std.container lists "in" as an operator in the container API but only associative arrays actually seem to support it.