Why non- at property functions don't need parentheses

Jonathan M Davis jmdavisProg at gmx.com
Sun Feb 6 20:53:45 PST 2011


On Sunday 06 February 2011 20:38:29 %u wrote:
> Hi,
> 
> I was wondering, why are we allowed to omit parentheses when calling
> functions with no arguments, when they are not @properties? Is there a
> good reason for relaxing the language rules like this?

Because the compiler is not in line with TDPL yet. It used to be that @property 
didn't even exist and _all_ functions which returned a value and took no 
parameters could be used as a getter property and _all_ functions which returned 
void and took a single value could be used as a setter property. @property was 
added so that it could be better controlled. However, while @property has been 
added, the compiler has yet to be changed to enforce that @property functions 
are called without parens and that non- at property functions are called with them. 
It will be fixed at some point, but it hasn't been yet.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list