pop & popFront combined
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Nov 2 03:46:17 PST 2014
On Saturday, 1 November 2014 at 13:54:31 UTC, Nordlöw wrote:
> On Saturday, 1 November 2014 at 13:38:22 UTC, Marc Schütz wrote:
>> If you want to avoid the temporary variable, you could write:
>>
>> scope(success) r.popFront;
>> return r.moveFront;
>
> Does this solution cost performance?
I think DMD doesn't generate good code for it; IIRC it lowers
scope(success) to a strange construct with an invisible variable
and a try/catch. Don't know the reasons for this, maybe it has
changed by now. Theoretically it would just need to move the
contents of the scope(success) after the evaluation of the
returned expression, which is cheap.
More information about the Digitalmars-d-learn
mailing list