`in` parameters made useful
spam at here.lot
Tue Aug 25 12:09:45 UTC 2020
On Friday, 21 August 2020 at 18:23:08 UTC, Mathias LANG wrote:
> The second example is pretty simple: the backend will decide
> whether to pass it by ref or not. Since it's a small type, it
> might make more sense to pass it in registers. Whether or not
> it's ref does not matter to the programmer, because the
> programmer cannot change the input anyway, only read it.
The backend doesn't know how to load the data. It matters to the
programmer, because it affects performance.
void log(in ref int n)
write(fd, &n, n.sizeof);
If the argument here is passed by value, it will need to fiddle
with stack and the code will be less optimal.
>> Doesn't this defeat your optimization when passing by value is
> I don't see how ?
If a non-POD object is passed by value, it will have extra calls
to postblit and destructor.
More information about the Digitalmars-d