binary expression...

captain_fid via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue May 24 08:34:23 PDT 2016


On Saturday, 21 May 2016 at 23:06:10 UTC, Ali Çehreli wrote:
> On 05/21/2016 12:56 PM, captain_fid wrote:
> >>> [...]
> fail me
> >>>       [...]
> value); }
> >>> [...]
> have a
> >> [...]
> something.
> > [...]
> missing/forgetting/misunderstanding here.
>
> opCast is for explicit type conversions. However, you seem to 
> want implicit type conversions.
>
> > [...]
> solution.
>
> vit's 'alias ... this' solution is it. Here is some for info:
>
>   http://ddili.org/ders/d.en/alias_this.html
>
> And here is another example if you want the 'bool' value to be 
> calculated as opposed to being a member:
>
> struct S {
>     int x;
>     int y;
>
>     /* Implicit type conversion to 'bool'
>      * (Because myBoolValue() returns 'bool'.) */
>     alias myBoolValue this;
>
>     bool myBoolValue() {
>         return (x + y) == 7;    // Some special condition
>     }
> }
>
> void main() {
>     auto a = S(1, 2);
>     auto b = S(3, 4);
>
>     assert(!a);    // Calls a.myBoolValue()
>     assert( b);    // Calls b.myBoolValue()
> }
>
> Ali

Thanks Ali (and again for making your work so available - I'm 
almost always re-reading). For some reason, I've missed 'alias 
this' and it is fascinating.

I'm off to retry these suggestions now...



More information about the Digitalmars-d-learn mailing list