On Tuesday, 2 June 2015 at 16:02:56 UTC, Namespace wrote:
Thanks to DIP 25 I think it's time to review this again. I
would implement it (if no one else wants to do it), but there
are still some unanswered questions:
1. Is 'auto ref' still the chosen syntax (I guess so)?
Why not `scope ref` (or `in ref` == `const scope ref`)?
2. Should auto ref for templates act like auto ref for
non-templates (creates a temporary and pass it by ref) or
should the current behaviour stay (duplicate the function 2^N
times)?
With `scope ref`, obviously it should stay as-is.
3. What's with return ref, should auto ref for non-templates
include return ref (like auto ref for templates)?
Like above, no.
4. What's with this constellation:
struct S { }
void ene(S) { }
void mene(ref S) { }
void muh(auto ref S) { }
should 'mene' (ref) interfere with 'muh' (auto ref)?
If overloading on `scope` is allowed, then yes, else no.