On Mon, 08 Nov 2010 14:48:20 -0500, Adam Cigánek <[email protected]> wrote:

Hello,

It seems that if function has no parameters, it's possible to omit the
parentheses when calling it:

    string sayHello() {
      return "hello";
    }

    void main() {
      writeln(sayHello); // same as writeln(sayHello());
    }

Is this an actual defined (and documented) behaviour that I can expect
to keep working in the future, or just some random unintended side
effect which might disappear in a next version?

It is documented behavior in D1 and originally in D2. D2 will eventually require you to mark function calls omitting parentheses with @property. This is valid D2 today, but the @property part is not required to call the function:

@property string sayHello() {
    return "hello";
}

D1 will remain the same, i.e. it will not require @property.

-Steve

Reply via email to