On Wednesday, 27 February 2013 at 17:56:10 UTC, Jonathan M Davis wrote:
On Wednesday, February 27, 2013 16:46:37 deadalnix wrote:
Here come the sister of DIP27 : DIP28 http://wiki.dlang.org/DIP28
.

It address specifically properties. A 3rd one is coming on
delegate. As for DIP27, the goal is to go aggressively for
simplicity.

And what does this provide over DIP23 aside from the fact that now it's impossible to get the address of a property function (which of course is
a problem)?


It doesn't have special cases.

As of taking the address of a property, we should simply allow the compiler to optimize away lambda when they are of the form :
a => fun(a);

when it make sens to do so. This is easy to recognize for the compiler.

Additionally, I don't think this is really a problem as it is asking to break the abstraction, plain and simple. If you need a function pointer, then it is likely that you shouldn't be using a property in the first place.

Every signle field access involve some operation, sometime even a complex one (TLS on OSX for instance). And you can't get a function pointer on that, and this haven't been a problem for anyone so far. The compiler propose some routines to interact with data, and properties allow the user to propose its own.

Reply via email to