On Saturday, 5 May 2018 at 15:22:04 UTC, Bolpat wrote:
I once proposed that `in` can mean `const scope ref` that also
binds rvalues.
https://github.com/dlang/DIPs/pull/111#issuecomment-381911140
We could make `in` be something similar to `inline`. The
compiler can implement it as stated above (assign the
expression to temporary, reference it), or use copy if copy is
cheaper than referencing.
I remember, and I still like that proposal a lot, as it'd allow
the compiler to tune generic code to the targeted platform and
its ABI and free the dev from having to worry about how to pass a
read-only input argument in the most efficient way. So if `in`
semantics are ever to be redefined, `const [scope ref]`
(depending on type and target ABI) are the only ones I'd happily
agree with. [And I'd be extremely happy if rvalues could finally
bind to ref params, not just as prerequisite for this.]