Article about problems & suggestions for D 2.0

Alex Rønne Petersen xtzgzorex at gmail.com
Mon Aug 29 09:30:25 PDT 2011


On 29-08-2011 18:15, Andrej Mitrovic wrote:
> On 8/29/11, kennytm<kennytm at gmail.com>  wrote:
>> On the pattern matching syntax for templates in the comments -- Sigh, the
>> spec gotta advertise this valid syntax in the operator overloading page
>> more:
>>
>>      Foo opBinary(string op:"+")(...) { ... }
>>
>
> Wow I didn't know about this. So now I can do this:
> enum Foo
> {
>      A,
>      B
> }
>
> void test(Foo foo:Foo.A)()  {}
>
> instead of the more verbose:
> void test(Foo foo)()
>      if (foo == Foo.A)
> {}

Can it be used for overloading? I assume the way it works in that code 
is that it only runs the function if foo equals Foo.A.

- Alex


More information about the Digitalmars-d mailing list