Calling delegate properties without parens

Piotr Szturmaj bncrbme at jadamspam.pl
Sat Apr 14 11:47:20 PDT 2012


I have following code:

import std.array, std.range, std.stdio;

struct CommonInputRange(E)
{
     @property bool delegate() empty;
     @property E delegate() front;
     void delegate() popFront;
}

void main(string[] args)
{
     alias CommonInputRange!dchar DCRange;
     static assert(isInputRange!DCRange);
     DCRange dc;
     auto dcr = "abcdefg";
     auto t = dcr.takeExactly(3);
     dc.empty = &t.empty;
     dc.front = &t.front;
     dc.popFront = &t.popFront;

     for ( ; !dc.empty(); dc.popFront())
         writeln(dc.front());
}

As you can see in the for loop, range primitives must be called using 
parens (), otherwise they don't work.

Do you know if there are plans to implement @property for delegates and 
function pointers?


More information about the Digitalmars-d-learn mailing list