DIP28, on properties, availabel for destruction as well

Artur Skawina art.08.09 at gmail.com
Thu Mar 14 04:04:28 PDT 2013


On 03/13/13 21:16, Timon Gehr wrote:
> Currently there might be unnecessary overhead for returning a result if it is not used. Since a property will usually hold on to the value, this can be a problem if a struct is expensive to copy. Hence the implementer may choose to not support multiple assignment for performance reasons (justified or, usually, unjustified). Hence generic code cannot rely on multiple assignment working, which is not nice.

Compiler optimization territory. The compiler can clone the function, create a copy that
doesn't return a result; callers that don't need one (and don't inline the callee) can
then use that clone. The case where a function always returns the argument (like property
setters will typically do) can also be handled more efficiently (yes; this can get a bit
more interesting, specially for non-pod types).

artur


More information about the Digitalmars-d mailing list