On Friday, 25 January 2013 at 16:53:43 UTC, deadalnix wrote:
Because you invalidate most legitimate use of a setter.
Erm.. Whaaat? How this case is legitimate at all? Please elaborate. In example you define a @property for some data type and then try to assign to this property without using any context. It is like calling class method and skipping "this". As I have mentioned in other thread, there are 2 contradictory approaches: either free-form property has semantics of global variable or it has semantics of data member of its first argument. Not both.

A struct with a function pointer and data already exists in D. This is called a delegate.
And additional hidden implementation complications differ it from all other function types. Rare special case for clearly defined situations. I like it that way. Leave function to be just like good old C function.

Reply via email to