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