ref arguments
Jeremie Pelletier
jeremiep at gmail.com
Mon Sep 21 09:23:46 PDT 2009
Steven Schveighoffer wrote:
> On Mon, 21 Sep 2009 11:51:28 -0400, Jarrett Billingsley
> <jarrett.billingsley at gmail.com> wrote:
>
>> On Mon, Sep 21, 2009 at 11:43 AM, Steven Schveighoffer
>> <schveiguy at yahoo.com> wrote:
>>
>>> in means that it's a reference that cannot be changed. In D1, it
>>> means you
>>> cannot change the value, but if the value contains a reference to
>>> something
>>> else (like an array), you can change what it points to.
>>
>>> in: Use this for pass by reference for a value that you won't change
>>
>> No, sorry, this is wrong. In D1, 'in' is the default (pass by value)
>> and does nothing.
>
> Oh, that's... um useless... Pardon me for thinking it meant something ;)
>
> I'm pretty sure it means something in D2 though.
>
> -Steve
'in' means 'const scope' in D2, which is using pass-by-value semantics.
I myself stay out of 'ref' and 'out' params since they do not yet
optimize and add quite a lot of overhead making temporary "safe" copies
of the data.
Also 'scope' params have a meaning, when a delegate parameter is
declared as scope, it allows a closure to use stack storage instead of
the usual heap storage.
More information about the Digitalmars-d-learn
mailing list