On Friday, 20 July 2018 at 13:21:11 UTC, Jonathan M Davis wrote:
On Friday, July 20, 2018 05:16:53 Mike Parker via Digitalmars-d wrote:
[...]

I am completely against allowing ref to accept rvalues without some sort of attribute indicating that it should be allowed to (e.g. @rvalue ref). Allowing ref to accept rvalues goes completely against the idea that ref is for passing an object so that it can be mutated and have its result affect the caller. With this DIP, we'd likely start seeing folks using ref all over the place even when it has nothing to do with having the function mutating its arguments, and that's not only error-prone, but it obfuscates what ref was originally intended for.

[...]

I kinda agree with this, just not so strongly I think.

But as for a UDA, maybe @implicit from the copy constructor DIP can be reused here?

void f(@implicit ref A a) {}

On a side note, I'm not familiar with the talks that've gone around the keyword "in", and I see there's a deprecation issue on bugzilla [1]. Can "in" be added here? "in ref" or just repurposed completely?

Cheers,
- Ali

[1] https://issues.dlang.org/show_bug.cgi?id=18604

Reply via email to