`in` no longer same as `const ref`
kinke via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jan 30 12:11:08 PST 2017
On Monday, 30 January 2017 at 19:05:33 UTC, Q. Schroll wrote:
> Can't we make "in" mean "const scope ref", that binds on
> r-values, too? Effectively, that's (similar to) what "const T&"
> in C++ means. It's a non-copying const view on the object. We
> have the longstanding problem, one must overload a function to
> effectively bind both l- and r-values. That is what I'd suppose
> to be the dual to "out".
+1000, I really love this proposal; I *hate* that this point is
still missing in D in 2017.
It shouldn't even break existing code using `in` (but obviously
the ABI) just because now a pointer to a const instance is passed
instead of making a const copy.
Generic stuff: void foo(in T arg) // const scope ref
=> safe `const T&`
By-value optimizations: void foo(const T arg)
I love it.
More information about the Digitalmars-d
mailing list